{"version":3,"file":"static/js/main.7ca2155a.js","mappings":"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,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMj4C,GAAG,MAAMk4C,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMha,GAAG,MAAMia,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC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AAe,IAAIkqB,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,UCrII8rB,GAAc,wCAEd/5B,GAAe,WAMG,SAAAy9B,GAAOloD,GAC7B,OAAOA,EACJ/M,QAAQuxD,GAAa,KACrBvxD,QAAQw3B,GAAc,GAC3B,CCdA,IAAM6kC,GAAgB,WAIhB9lD,GAAc,GAGdC,GAAoB,SAACzJ,GAAiB,OAAAwI,OAAOsoC,aAAa9wC,GAAQA,EAAO,GAAK,GAAK,IAA7C,EAGpB,SAAAoO,GAAuBpO,GAC7C,IACIkO,EADAhG,EAAO,GAIX,IAAKgG,EAAIqD,KAAK4Y,IAAInqB,GAAOkO,EAAI1E,GAAa0E,EAAKA,EAAI1E,GAAe,EAChEtB,EAAOuB,GAAkByE,EAAI1E,IAAetB,EAG9C,OAAQuB,GAAkByE,EAAI1E,IAAetB,GAAMjV,QAAQq8D,GAAe,QAC5E,CCpBO,IAAAQ,GAAMlW,GAAO,KAKP0K,GAAQ,SAACtkD,EAAWkO,GAG/B,IAFA,IAAIhG,EAAIgG,EAAE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","sources":["../node_modules/await-to-js/src/await-to-js.ts","../node_modules/easy-currencies/src/converter.ts","../node_modules/easy-currencies/src/index.ts","../node_modules/easy-currencies/src/parts/chainer.ts","../node_modules/easy-currencies/src/parts/config.ts","../node_modules/easy-currencies/src/parts/providers.ts","../node_modules/easy-currencies/src/parts/requester.ts","../node_modules/easy-currencies/src/parts/utils.ts","../node_modules/easy-currencies/node_modules/axios/index.js","../node_modules/easy-currencies/node_modules/axios/lib/adapters/xhr.js","../node_modules/easy-currencies/node_modules/axios/lib/axios.js","../node_modules/easy-currencies/node_modules/axios/lib/cancel/Cancel.js","../node_modules/easy-currencies/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/easy-currencies/node_modules/axios/lib/cancel/isCancel.js","../node_modules/easy-currencies/node_modules/axios/lib/core/Axios.js","../node_modules/easy-currencies/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/easy-currencies/node_modules/axios/lib/core/buildFullPath.js","../node_modules/easy-currencies/node_modules/axios/lib/core/createError.js","../node_modules/easy-currencies/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/easy-currencies/node_modules/axios/lib/core/enhanceError.js","../node_modules/easy-currencies/node_modules/axios/lib/core/mergeConfig.js","../node_modules/easy-currencies/node_modules/axios/lib/core/settle.js","../node_modules/easy-currencies/node_modules/axios/lib/core/transformData.js","../node_modules/easy-currencies/node_modules/axios/lib/defaults.js","../node_modules/easy-currencies/node_modules/axios/lib/env/data.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/bind.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/buildURL.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/cookies.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/spread.js","../node_modules/easy-currencies/node_modules/axios/lib/helpers/validator.js","../node_modules/easy-currencies/node_modules/axios/lib/utils.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/eve/eve.js","../node_modules/exenv/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-alice-carousel/lib/defaultProps.js","../node_modules/react-alice-carousel/lib/react-alice-carousel.js","../node_modules/react-alice-carousel/lib/types/index.js","../node_modules/react-alice-carousel/lib/utils/classnames.js","../node_modules/react-alice-carousel/lib/utils/common.js","../node_modules/react-alice-carousel/lib/utils/controls.js","../node_modules/react-alice-carousel/lib/utils/debug.js","../node_modules/react-alice-carousel/lib/utils/elements.js","../node_modules/react-alice-carousel/lib/utils/index.js","../node_modules/react-alice-carousel/lib/utils/mappers.js","../node_modules/react-alice-carousel/lib/utils/math.js","../node_modules/react-alice-carousel/lib/utils/render.js","../node_modules/react-alice-carousel/lib/utils/timers.js","../node_modules/react-alice-carousel/lib/views/DotsNavigation.js","../node_modules/react-alice-carousel/lib/views/Link.js","../node_modules/react-alice-carousel/lib/views/PlayPauseButton.js","../node_modules/react-alice-carousel/lib/views/PrevNextButton.js","../node_modules/react-alice-carousel/lib/views/SlideInfo.js","../node_modules/react-alice-carousel/lib/views/StageItem.js","../node_modules/react-alice-carousel/lib/views/index.js","../node_modules/react-burger-menu/lib/BurgerMenu.js","../node_modules/react-burger-menu/lib/components/BurgerIcon.js","../node_modules/react-burger-menu/lib/components/CrossIcon.js","../node_modules/react-burger-menu/lib/helpers/baseStyles.js","../node_modules/react-burger-menu/lib/helpers/dom.js","../node_modules/react-burger-menu/lib/helpers/snapsvgImporter.js","../node_modules/react-burger-menu/lib/helpers/utils.js","../node_modules/react-burger-menu/lib/menuFactory.js","../node_modules/react-burger-menu/lib/menus/bubble.js","../node_modules/react-burger-menu/lib/menus/elastic.js","../node_modules/react-burger-menu/lib/menus/fallDown.js","../node_modules/react-burger-menu/lib/menus/push.js","../node_modules/react-burger-menu/lib/menus/pushRotate.js","../node_modules/react-burger-menu/lib/menus/reveal.js","../node_modules/react-burger-menu/lib/menus/scaleDown.js","../node_modules/react-burger-menu/lib/menus/scaleRotate.js","../node_modules/react-burger-menu/lib/menus/slide.js","../node_modules/react-burger-menu/lib/menus/stack.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-multi-carousel/index.js","../node_modules/react-multi-carousel/lib/Arrows.js","../node_modules/react-multi-carousel/lib/Carousel.js","../node_modules/react-multi-carousel/lib/CarouselItems.js","../node_modules/react-multi-carousel/lib/Dots.js","../node_modules/react-multi-carousel/lib/index.js","../node_modules/react-multi-carousel/lib/types.js","../node_modules/react-multi-carousel/lib/utils/clones.js","../node_modules/react-multi-carousel/lib/utils/common.js","../node_modules/react-multi-carousel/lib/utils/dots.js","../node_modules/react-multi-carousel/lib/utils/elementWidth.js","../node_modules/react-multi-carousel/lib/utils/index.js","../node_modules/react-multi-carousel/lib/utils/mouseOrTouchMove.js","../node_modules/react-multi-carousel/lib/utils/next.js","../node_modules/react-multi-carousel/lib/utils/previous.js","../node_modules/react-multi-carousel/lib/utils/throttle.js","../node_modules/react-multi-carousel/lib/utils/throwError.js","../node_modules/react-select-country-list/country-list.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/snapsvg-cjs/dist/snap.svg-cjs.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/vanilla-swipe/lib/index.js","../node_modules/vanilla-swipe/lib/types/index.js","../node_modules/vanilla-swipe/lib/utils/calculateDirection.js","../node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js","../node_modules/vanilla-swipe/lib/utils/calculateDuration.js","../node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js","../node_modules/vanilla-swipe/lib/utils/calculatePosition.js","../node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js","../node_modules/vanilla-swipe/lib/utils/calculateVelocity.js","../node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js","../node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js","../node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js","../node_modules/vanilla-swipe/lib/utils/common.js","../node_modules/vanilla-swipe/lib/utils/createOptions.js","../node_modules/vanilla-swipe/lib/utils/getInitialProps.js","../node_modules/vanilla-swipe/lib/utils/getInitialState.js","../node_modules/vanilla-swipe/lib/utils/getOptions.js","../node_modules/vanilla-swipe/lib/utils/index.js","../node_modules/vanilla-swipe/lib/utils/resolveDirection.js","../node_modules/vanilla-swipe/lib/utils/rotateByAngle.js","../node_modules/vanilla-swipe/lib/utils/updateTrace.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","event/component/horizontalLine.js","images/location.svg","images/temp.svg","images/temp_2.svg","images/airport.svg","images/smallArrowRight.svg","images/arrowRightOrange.svg","event/component/collapsibleSection.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/react-select.esm.js","event/component/countrySelectorDialog.js","event/component/registrationComponent.js","event/component/courseComponent.js","../node_modules/countries-list/mjs/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","api/contactus/contactUs.js","event/component/contactSection.js","event/component/athleteSection.js","event/component/partnersSection.js","api/events/getEventById.js","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/constructors/keyframes.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","../node_modules/react-loader-spinner/src/type.ts","../node_modules/react-loader-spinner/src/shared/svg-wrapper.tsx","../node_modules/react-loader-spinner/src/shared/constants.ts","../node_modules/react-loader-spinner/src/loader/infinity-spin.tsx","../node_modules/react-loader-spinner/src/loader/rotating-lines.tsx","../node_modules/react-loader-spinner/src/loader/three-dots.tsx","../node_modules/react-loader-spinner/src/loader/triangle.tsx","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/utf8.ts","../node_modules/@firebase/util/src/exponential_backoff.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/@firebase/installations/src/util/constants.ts","../node_modules/@firebase/installations/src/util/errors.ts","../node_modules/@firebase/installations/src/functions/common.ts","../node_modules/@firebase/installations/src/util/sleep.ts","../node_modules/@firebase/installations/src/helpers/generate-fid.ts","../node_modules/@firebase/installations/src/helpers/buffer-to-base64-url-safe.ts","../node_modules/@firebase/installations/src/util/get-key.ts","../node_modules/@firebase/installations/src/helpers/fid-changed.ts","../node_modules/@firebase/installations/src/helpers/idb-manager.ts","../node_modules/@firebase/installations/src/helpers/get-installation-entry.ts","../node_modules/@firebase/installations/src/functions/create-installation-request.ts","../node_modules/@firebase/installations/src/functions/generate-auth-token-request.ts","../node_modules/@firebase/installations/src/helpers/refresh-auth-token.ts","../node_modules/@firebase/installations/src/api/get-token.ts","../node_modules/@firebase/installations/src/helpers/extract-app-config.ts","../node_modules/@firebase/installations/src/functions/config.ts","../node_modules/@firebase/installations/src/api/get-id.ts","../node_modules/@firebase/installations/src/index.ts","../node_modules/@firebase/analytics/src/constants.ts","../node_modules/@firebase/analytics/src/logger.ts","../node_modules/@firebase/analytics/src/errors.ts","../node_modules/@firebase/analytics/src/helpers.ts","../node_modules/@firebase/analytics/src/get-config.ts","../node_modules/@firebase/analytics/src/functions.ts","../node_modules/@firebase/analytics/src/initialize-analytics.ts","../node_modules/@firebase/analytics/src/factory.ts","../node_modules/@firebase/analytics/src/api.ts","../node_modules/@firebase/analytics/src/index.ts","event/component/GalleryComponent.js","images/arrowDown.svg","images/arrow-right.svg","event/component/constomeDD.js","event/eventMainPage.js","components/Slideshow.js","api/events/getAllEvents.js","images/shabab.svg","images/dubaicouncil.svg","images/somabay.svg","images/cib.svg","images/cocacola.svg","images/arena.svg","images/arrowleft.svg","images/arrowRight.svg","components/partners.js","dashboard.js","../node_modules/firebase/app/index.ts","../node_modules/@firebase/storage/src/implementation/constants.ts","../node_modules/@firebase/storage/src/implementation/error.ts","../node_modules/@firebase/storage/src/implementation/connection.ts","../node_modules/@firebase/storage/src/implementation/location.ts","../node_modules/@firebase/storage/src/implementation/failrequest.ts","../node_modules/@firebase/storage/src/implementation/type.ts","../node_modules/@firebase/storage/src/implementation/url.ts","../node_modules/@firebase/storage/src/implementation/utils.ts","../node_modules/@firebase/storage/src/implementation/request.ts","../node_modules/@firebase/storage/src/implementation/backoff.ts","../node_modules/@firebase/storage/src/implementation/path.ts","../node_modules/@firebase/storage/src/reference.ts","../node_modules/@firebase/storage/src/service.ts","../node_modules/@firebase/util/src/emulator.ts","../node_modules/@firebase/storage/src/constants.ts","../node_modules/@firebase/storage/src/index.ts","firebaseConfig.js","../node_modules/@firebase/storage/src/api.ts","event/component/checkoutContent.js","api/events/applyPromo.js","api/events/fullCoverageCheckout.js","event/component/checkoutSummary.js","event/component/checkout.js","images/add.svg","api/events/initializePayment.js","api/events/checkout.js","event/courseRegistration.js","event/component/PaymentSuccessPage.js","makanakForm/fullLogoWhite.svg","api/makanak/earlyApply.js","api/makanak/survay.js","makanakForm/MakanakForm.js","App.js","reportWebVitals.js","images/logofull.svg","index.js"],"sourcesContent":["/**\n * @param { Promise } promise\n * @param { Object= } errorExt - Additional Information you can pass to the err object\n * @return { Promise }\n */\nexport function to (\n promise: Promise,\n errorExt?: object\n): Promise<[U, undefined] | [null, T]> {\n return promise\n .then<[null, T]>((data: T) => [null, data])\n .catch<[U, undefined]>((err: U) => {\n if (errorExt) {\n Object.assign(err, errorExt);\n }\n\n return [err, undefined];\n });\n}\n\nexport default to;\n","import { fetchRates } from \"./parts/requester\";\nimport { Provider, ProviderReference } from \"./parts/providers\";\nimport { Config, ProxyConfiguration } from \"./parts/config\";\nexport { Chainer as Convert } from \"./parts/chainer\";\nimport _to from \"await-to-js\";\nimport axios from \"axios\";\n\n/**\n * A simple map object for rates\n *\n * @export\n * @interface rateObject\n */\nexport interface rateObject {\n [currencyName: string]: number;\n}\n\n/**\n * Regular converter class definition.\n *\n * @export\n * @class Converter\n */\nexport class Converter {\n /**\n * Converter's main config object.\n *\n * @type {Config}\n * @memberof Converter\n */\n config: Config;\n\n /**\n * Creates an instance of Converter.\n * @param {(...ProviderReference[] | undefined[] | string[])} config\n * @memberof Converter\n */\n constructor(...config: ProviderReference[] | undefined[] | string[]) {\n this.config = new Config(...config);\n\n // Forwarding config adder function (with the alternative handle)\n this.add = this.config.add;\n this.addProvider = this.config.add;\n\n // Forwarding config multiple adder function (with the alternative handle)\n this.addMultiple = this.config.addMultiple;\n this.addMultipleProviders = this.config.addMultiple;\n\n this.remove = this.config.remove;\n }\n\n /**\n * Getters for active providers\n *\n * @readonly\n * @type {Provider[]}\n * @memberof Converter\n */\n get providers(): Provider[] {\n return this.config.providers;\n }\n get active(): Provider[] {\n return this.config.providers;\n }\n\n /*\n Proxy function definitions\n */\n add: Config[\"add\"];\n addProvider: Config[\"add\"];\n addMultiple: Config[\"addMultiple\"];\n addMultipleProviders: Config[\"addMultiple\"];\n remove: Config[\"remove\"];\n\n /**\n * Method to set the proxy configuration.\n * @param proxyConfiguration The proxy configuration.\n */\n setProxyConfiguration = (proxyConfiguration: ProxyConfiguration) => {\n this.config.setClient(axios.create({ proxy: proxyConfiguration }));\n };\n\n /**\n * Conversion function (non chainable).\n *\n * @example\n * const converter = new Converter()\n * const converted = await converter.convert(15,\"USD\",\"EUR\")\n * console.log(converted);\n *\n * @param {number} amount - amount to be converted\n * @param {string} from - base currency\n * @param {string} to - conversion currency\n * @param {any} rates - conversion rates, if they were pre-fetched\n * @returns {Promise} - converted amount\n */\n convert = async (\n amount: number,\n from: string,\n to: string,\n rates: any = undefined\n ): Promise => {\n // Returining conversion from provided rates\n if (typeof rates !== \"undefined\") {\n return this.convertRate(amount, to, rates);\n }\n\n //Fetching conversion rates from the active provider\n const [err, data] = await _to(this.getRates(from, to, false));\n\n if (err) {\n throw err;\n }\n\n if (!data || Object.keys(data).length == 0) {\n throw new Error(\"No data returned for rate fetch.\");\n }\n\n // Normalizing resulting rates data\n return this.convertRate(amount, to, data);\n };\n\n /**\n * Performs safe multiplication to get the result amount.\n * @param {number} amount - amount to be converted\n * @param {string} to - conversion currency\n * @param {any} rates - conversion rates, if they were pre-fetched\n * @returns\n */\n convertRate = (\n amount: number,\n to: string,\n rates: any = undefined\n ): number => {\n if (!rates[to]) {\n throw new Error(`No '${to}' present in rates: ${rates}`);\n }\n\n return amount * rates[to];\n };\n\n /**\n * Rate fetch function\n * @param {string} from - base currency\n * @param {string} to - conversion currency\n * @param {boolean} multiple - determines conversion mode\n * @returns\n */\n getRates = async (\n from: string,\n to: string,\n multiple: boolean = false\n ): Promise => {\n // Getting the current active provider\n const provider = this.config.activeProvider();\n\n // Getting the client\n const client = this.config.getClient();\n\n // Fetching conversion rates from the active provider.\n const [err, data] = await (_to(\n fetchRates(client, provider, {\n FROM: from,\n TO: to,\n multiple: multiple\n })\n ));\n\n // error handling:\n // if the error is not in the registered list of errors (is undefined), then throw.\n // if the error is in the list, but there are no backup providers, then throw.\n // if the error is in the list and there is a backup, log the error and continue.\n if (!err) {\n return provider.handler(data);\n }\n\n // unrecognized error\n if (!err.handled) {\n throw err.error;\n }\n\n // logging existing error\n console.error(err.error);\n\n if (this.config.providers.length <= 1) {\n throw err.error;\n }\n\n // removing current provider from active list\n this.config.remove(provider);\n\n // Retrying...\n return this.getRates(from, to, multiple);\n };\n}\n","export { Converter, Convert } from \"./converter\";\nexport { providers } from \"./parts/providers\";\n","import { Converter, rateObject } from \"../converter\";\n\nimport __to from \"await-to-js\";\n\n/**\n * The chainable object interface.\n *\n * @interface chainableConverter\n */\ninterface chainableConverter {\n from: (from: string) => chainableConverter;\n to: (to: string) => Promise;\n fetch: () => Promise;\n rates: rateObject;\n amount: (val: number) => chainableConverter;\n}\n\n/**\n * Chained converter.\n * It defaults to the basic API provider, and does not require initialization.\n *\n * @example\n * let value = await Convert(15).from(\"USD\").to(\"EUR\");\n *\n * @export\n * @param {number} amount - amount of currency to convert\n * @returns\n */\nexport function Chainer(amount: number | undefined = undefined) {\n let _currentAmount: number | undefined = amount;\n let _currentFrom: string | undefined = undefined;\n let _currentTo: string | undefined = undefined;\n let _currentRates: any | undefined = undefined;\n\n // local converter\n const _converter = new Converter();\n\n /**\n * Return object construction, prepared for chaining.\n */\n const chainable: chainableConverter = {\n from: _from,\n to: _to,\n fetch: _fetch,\n get rates() {\n return _currentRates;\n },\n amount: _amount\n };\n\n /**\n * Chain member that fetches and caches the rates for the given currency.\n *\n * @returns chainable object\n */\n async function _fetch() {\n // fetching rates for the base currency\n _currentRates = await _converter.getRates(_currentFrom, \"\", true);\n return chainable;\n }\n\n // returning chainable\n return chainable;\n\n /**\n * Chain member that sets the base currency\n *\n * @param {string} from\n * @returns chainable object\n */\n function _amount(val: number) {\n _currentAmount = val;\n return chainable;\n }\n\n /**\n * Chain member that sets\n *\n * @param {string} from\n * @returns chainable object\n */\n function _from(from: string) {\n _currentFrom = from;\n return chainable;\n }\n\n /**\n * Final chain member (ends chain)\n *\n * @param {string} to - final currency\n * @returns {number} - final converted amount\n */\n async function _to(to: string) {\n _currentTo = to;\n\n // converting\n const result = await _converter.convert(\n _currentAmount,\n _currentFrom,\n _currentTo,\n _currentRates\n );\n\n return result;\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport {\n Provider,\n providers,\n resolveProvider,\n UserDefinedProvider,\n ProviderReference\n} from \"./providers\";\n\nimport { checkIfUserDefinedProvider } from \"./utils\";\n\n/**\n * Proxy configuration object.\n */\nexport interface ProxyConfiguration {\n host: string;\n port: number;\n auth: { username: string; password: string };\n}\n\n/**\n * Config object that initializes with configuration data\n * passed in by the user.\n *\n * @export\n * @class Config\n */\nexport class Config {\n /**\n * Array of active curency API providers.\n *\n * @type {Provider[]}\n * @memberof Config\n */\n private _active: Provider[];\n\n /**\n * Provider getter.\n *\n * @returns {Provider[]}\n * @memberof Config\n */\n get providers(): Provider[] {\n return this._active;\n }\n\n /**\n * Active client.\n */\n private _client: AxiosInstance = axios.create();\n\n /**\n * Client setter.\n * @param client The client.\n */\n setClient = (client: AxiosInstance): void => {\n this._client = client;\n };\n\n /**\n * Client getter.\n */\n getClient = () => {\n return this._client;\n };\n\n /**\n * Provider setter (adder).\n *\n * @param {Provider[]} providers - providers to be added\n * @param {boolean} [setActive=false] - should the new provider(s) be prioritized\n * @returns {void}\n * @memberof Config\n */\n private addProviders(providers: Provider[], setActive: boolean): void {\n providers = providers.filter((p) => {\n return !this._active.find((a) => a == p);\n });\n\n if (setActive) {\n this._active.unshift(...providers);\n return;\n }\n this._active.push(...providers);\n return;\n }\n\n /**\n * Adds a single new, user-defined provider to the list of providers.\n *\n * @param {string} name - the new provider name\n * @param {Provider} provider - the new provider object\n * @param {boolean} [setActive=false] - should the new provider(s) be prioritized\n * @memberof Config\n */\n add = (\n name: string,\n provider: Provider,\n setActive: boolean = false\n ): void => {\n this.addMultiple([{ name, provider }], setActive);\n };\n\n /**\n * Adds multiple new, user-defined provider to the list of providers.\n *\n * @param {UserDefinedProvider[]} providers - providers to be added\n * @param {boolean} [setActive=false] - should the new provider(s) be prioritized\n * @memberof Config\n */\n addMultiple = (\n newProviders: UserDefinedProvider[],\n setActive: boolean = false\n ): void => {\n // Duplicate check\n newProviders.forEach((p) => {\n if (!checkIfUserDefinedProvider(p)) {\n throw \"Invalid provider format!\";\n }\n\n if (providers[p.name]) {\n throw \"A provider by this name is already registered!\";\n }\n providers[p.name] = p.provider;\n });\n\n // Adding provider to active providers\n this.addProviders(\n newProviders.map((p) => p.provider),\n setActive\n );\n };\n\n /**\n * Removes a specific provider\n * @param {Provider} provider - provider to be removed\n * @memberof Config\n */\n remove = (provider: Provider): void => {\n this._active = this._active.filter((p) => p != provider);\n };\n\n /**\n * Returns the current provider\n *\n * @returns {Provider} - current provider\n * @memberof Config\n */\n activeProvider(): Provider {\n return this._active[0];\n }\n\n /**\n * Creates an instance of Config.\n * @param {(...ProviderReference[] | undefined[] | string[])} config\n * @memberof Config\n */\n constructor(...config: ProviderReference[] | undefined[] | string[]) {\n this._active = resolveProviders(...config);\n\n // adding default fallback\n this.addProviders([providers.ExchangeRateAPI], false);\n }\n}\n\n/**\n * Config resolver that normalizes configuration input into the config interface\n *\n * @export\n * @param {(...ProviderReference[] | undefined[] | string[])} configuration\n * @returns {Provider[]}\n */\nexport function resolveProviders(\n ...configuration: ProviderReference[] | undefined[] | string[]\n): Provider[] {\n // resolve default if none provided.\n if (typeof configuration === \"undefined\" || !configuration.length) {\n return [providers.ExchangeRateAPI];\n }\n\n // checking for incorrect config types\n if (\n typeof configuration[0] !== \"object\" &&\n typeof configuration[0] !== \"undefined\" &&\n typeof configuration[0] !== \"string\"\n ) {\n throw \"You must either supply nothing or a config object (see the 'config' section to see the different APIs that can be used)\";\n }\n\n // returning single provider\n if (typeof configuration[0] === \"string\") {\n // constructing in initializationConfig object from string values\n return [resolveProvider({ name: configuration[0], key: configuration[1] })];\n }\n\n // configuration is an array of providers\n // casting\n const initializationConfig = configuration;\n\n // resolving all providers\n return initializationConfig.map((provider) => resolveProvider(provider));\n}\n","/**\n * A map for provider information\n *\n * @interface Providers\n */\nexport interface Providers {\n [name: string]: Provider;\n}\n\n/**\n * Provider error entry\n *\n * @export\n * @interface ProviderErrors\n */\nexport interface ProviderErrors {\n [code: string]: string;\n}\n\n/**\n * Object that describes a user-defined provider.\n *\n * @export\n * @interface UserDefinedProvider\n */\nexport interface UserDefinedProvider {\n name: string;\n provider: Provider;\n}\n\n/**\n * Single provider interface.\n * Used to store pre-constructed query templates for various currency rate providers.\n * @export\n * @interface Provider\n */\nexport interface Provider {\n /**\n * An API key / Profile ID / Access key for a provider.\n *\n * @type {*}\n * @memberof Provider\n */\n key: any;\n /**\n * Endpoint configuration object for a provider:\n * The base template is the root of the access URL, with a place for access key in the form of %KEY% (if needed)\n * The single template is used for single currency conversions, requires a %FROM% and a %TO% to be present.\n * The multiple template is currently unused.\n * @type {{ base: string; single: string; multiple: string }}\n * @memberof Provider\n */\n endpoint: { base: string; single: string; multiple: string };\n /**\n * A function that returns a map of currencies from the data object returned by axios (response.data)\n *\n * @example\n * function(data) { //must return {currency1:rate1,curency2:rate2} in reference to the base currency.\n * return data.rates;\n * }\n *\n * @type {Function}\n * @memberof Provider\n */\n handler: Function;\n /**\n * A map of possible errors and their respective messages\n *\n * @type {*}\n * @memberof Provider\n */\n errors: ProviderErrors;\n /**\n * A unique method to resolve errors, if any.\n * Some APIs return their errors via success responses, others via HTTP failures.\n * These two modes are mutually exclusive; The data passed to the errorHandler is:\n * the response.data object, in the case of 'success' failures\n * the response object, in the case of Axios errors (HTTP failures)\n *\n * @type {Function}\n * @memberof Provider\n */\n errorHandler: Function;\n}\n\n/**\n * An interface for an object that is used to configure providers\n *\n * @export\n * @interface ProviderReference\n */\nexport interface ProviderReference {\n name: string;\n key: any;\n}\n\n/**\n * A function that constructs provider based on raw input data.\n *\n * @export\n * @param {ProviderReference} provider object containing provider name and api key\n * @returns {Provider} constructed provider\n */\nexport function resolveProvider(provider: ProviderReference): Provider {\n const existentProvider = providers[provider.name];\n if (!existentProvider) {\n throw \"No provider with this name. Please use a provider from the supported providers list.\";\n }\n\n // attaching key\n existentProvider.key = provider.key;\n return existentProvider;\n}\n\n/**\n * Provider map initialization\n */\nexport const providers: Providers = {\n ExchangeRateAPI: {\n endpoint: {\n base: \"https://api.exchangerate-api.com/v4/latest/\",\n single: \"%FROM%\",\n multiple: \"%FROM%\"\n },\n key: undefined,\n handler: function (data: any) {\n return data.rates;\n },\n errors: { 400: \"Malformed query.\", 404: \"Currency not found\" },\n errorHandler: function (data: any) {\n return data.status;\n }\n },\n ExchangeRatesAPIIO: {\n endpoint: {\n base: \"http://api.exchangeratesapi.io/latest?access_key=%KEY%\",\n single: \"&base=%FROM%&symbols=%TO%\",\n multiple: \"&base=%FROM%\"\n },\n errors: {\n 105: \"A paid plan is required in order to use other base currencies!\",\n 101: \"Invalid API key!\",\n 201: \"Invalid base currency.\"\n },\n key: undefined,\n handler: function (data: any) {\n return data.rates;\n },\n errorHandler: function (data: any) {\n return data.status;\n }\n },\n CurrencyLayer: {\n endpoint: {\n base: \"http://apilayer.net/api/live?access_key=%KEY%\",\n single: \"&source=%FROM%\",\n multiple: \"&source=%FROM%¤cies=%TO%\"\n },\n key: undefined,\n handler: function (data: any) {\n const map = {} as any;\n Object.keys(data.quotes).map((key) => {\n map[key.slice(3)] = data.quotes[key];\n });\n return map;\n },\n errors: {\n 105: \"A paid plan is required in order to use CurrencyLayer (base currency use not allowed)\",\n 101: \"Invalid API key!\",\n 201: \"Invalid base currency.\",\n 106: \"No results.\"\n },\n errorHandler: function (data: any) {\n return data.error ? data.error.code : null;\n }\n },\n OpenExchangeRates: {\n endpoint: {\n base: \"https://openexchangerates.org/api/latest.json?app_id=%KEY%\",\n single: \"&base=%FROM%\",\n multiple: \"&base=%FROM%\"\n },\n key: undefined,\n handler: function (data: any) {\n return data.rates;\n },\n errors: {\n 401: \"Invalid API key!\"\n },\n errorHandler: function (data: any) {\n return data.status;\n }\n },\n AlphaVantage: {\n endpoint: {\n base: \"https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&apikey=%KEY%\",\n single: \"&from_currency=%FROM%&to_currency=%TO%\",\n multiple: \"\"\n },\n key: undefined,\n handler: function (data: any) {\n const map = {} as any;\n const o = data[Object.keys(data)[0]];\n map[o[\"3. To_Currency Code\"]] = o[\"5. Exchange Rate\"];\n return map;\n },\n errors: {\n 503: \"Invalid API key or Malformed query.\"\n },\n errorHandler: function (data: any) {\n return data[\"Error Message\"] ? 503 : false;\n }\n },\n Fixer: {\n endpoint: {\n base: \"http://data.fixer.io/api/latest?access_key=%KEY%\",\n single: \"&base=%FROM%&symbols=%TO%\",\n multiple: \"&base=%FROM%\"\n },\n key: undefined,\n handler: function (data: any) {\n return data.rates;\n },\n errors: {\n 105: \"A paid plan is required in order to use Fixer.io (base currency use not allowed)\",\n 101: \"Invalid API key!\",\n 201: \"Invalid base currency.\"\n },\n errorHandler: function (data: any) {\n return data.error ? data.error.code : null;\n }\n }\n};\n","import { AxiosError, AxiosInstance } from \"axios\";\nimport { Provider } from \"./providers\";\nimport to from \"await-to-js\";\n\n/**\n * Query interface, used to interact with the requester.\n *\n * @export\n * @interface Query\n */\nexport interface Query {\n FROM: string;\n TO: string;\n multiple: boolean;\n}\n\n/**\n * The fetchRates function, used for fetching currency conversion rates.\n *\n * @export\n * @param {AxiosInstance} client - client to be used for the request\n * @param {Provider} provider - provider from which the quotes will be fetched\n * @param {Query} query - the query\n * @returns {Promise} - a result promise\n */\nexport async function fetchRates(\n client: AxiosInstance,\n provider: Provider,\n query: Query\n): Promise {\n const [err, result] = (await to(client.get(formatUrl(provider, query)))) as [\n AxiosError,\n any\n ];\n\n // resolving error\n const error = provider.errorHandler(err ? err.response : result.data);\n\n // returning either the meaning of the error (if registered in provider's definition), or the error itself.\n if (error) {\n throw provider.errors[error]\n ? { handled: true, error: provider.errors[error] }\n : { handled: false, error };\n }\n\n return result.data;\n}\n\n/**\n * URL formatting function\n *\n * @param {Provider} provider - provider against which the request will be executed\n * @param {Query} query - the query\n * @returns {string} - formatted GET url string.\n */\nfunction formatUrl(provider: Provider, query: Query): string {\n // if (query.multiple) {\n // return (provider.endpoint.base + provider.endpoint.multiple)\n // .replace(\"%FROM%\", query.FROM)\n // .replace(\"%KEY%\", provider.key || \"\");\n // }\n\n // inserting base currency, final currency, and key (if needed)\n return (provider.endpoint.base + provider.endpoint.single)\n .replace(\"%FROM%\", query.FROM)\n .replace(\"%TO%\", query.TO)\n .replace(\"%KEY%\", provider.key || \"\");\n}\n","import { UserDefinedProvider, Provider } from \"./providers\";\n\n/**\n * Utility for typechecking UserDefinedProvider objects\n *\n * @export\n * @param {(UserDefinedProvider | any)} userDefinedProvider - The UserDefinedProvider object to be checked\n * @returns {u is UserDefinedProvider}\n */\nexport function checkIfUserDefinedProvider(\n userDefinedProvider: UserDefinedProvider | any\n): userDefinedProvider is UserDefinedProvider {\n return (\n (userDefinedProvider as UserDefinedProvider).name !== undefined &&\n checkIfProvider((userDefinedProvider as UserDefinedProvider).provider)\n );\n}\n\n/**\n * Utility for typechecking Provider objects\n *\n * @export\n * @param {(Provider | any)} provider - The Provider object to be checked\n * @returns {p is Provider}\n */\nexport function checkIfProvider(\n provider: Provider | any\n): provider is Provider {\n return (\n (provider as Provider).endpoint !== undefined &&\n (provider as Provider).errorHandler !== undefined &&\n (provider as Provider).errors !== undefined &&\n (provider as Provider).handler !== undefined &&\n (provider as Provider).key !== undefined\n );\n}\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\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 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();\n\n // HTTP basic authentication\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);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n 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\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\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 }\n\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 if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\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));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\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 if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\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 if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\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 }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\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(cancel) {\n if (!request) {\n return;\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 if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\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 */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\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 */\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;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\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 */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\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/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\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/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\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;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\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 */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\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);\n\n // Set config.method\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 }\n\n // filter out skipped interceptors\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\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\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};\n\n// Provide aliases for supported request methods\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});\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});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\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 */\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/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\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 */\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;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\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 */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\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 */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\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/**\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 */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\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 */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\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 return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\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 */\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 return source;\n }\n\n // eslint-disable-next-line consistent-return\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 }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\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 }\n\n // eslint-disable-next-line consistent-return\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\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\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\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 */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\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 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 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\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\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 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\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.24.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\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 */\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 if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\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 parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\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 */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function 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\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\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 */\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};\n","'use strict';\n\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 */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // 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.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\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 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);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\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) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\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 return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\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};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\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 */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\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 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\n return parsed;\n};\n","'use strict';\n\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 */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\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});\n\nvar deprecatedWarnings = {};\n\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 */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\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;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\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 */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\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 */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\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 */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\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 */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\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 */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\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 */\nfunction isArrayBufferView(val) {\n var result;\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 return result;\n}\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 */\nfunction isString(val) {\n return typeof val === 'string';\n}\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 */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\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 */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\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 */\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/**\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 */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\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 */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\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 */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\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 */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\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 */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\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 */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\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 */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\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/**\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 */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\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 return result;\n}\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 */\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/**\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 */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\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};\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.5.4 - JavaScript Events Library │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n var version = \"0.5.4\",\n has = \"hasOwnProperty\",\n separator = /[\\.\\/]/,\n comaseparator = /\\s*,\\s*/,\n wildcard = \"*\",\n numsort = function (a, b) {\n return a - b;\n },\n current_event,\n stop,\n events = {n: {}},\n firstDefined = function () {\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n lastDefined = function () {\n var i = this.length;\n while (--i) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n objtos = Object.prototype.toString,\n Str = String,\n isArray = Array.isArray || function (ar) {\n return ar instanceof Array || objtos.call(ar) == \"[object Array]\";\n },\n /*\\\n * eve\n [ method ]\n\n * Fires event with given `name`, given scope and other parameters.\n\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n - scope (object) context for the event handlers\n - varargs (...) the rest of arguments will be sent to event handlers\n\n = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.\n \\*/\n eve = function (name, scope) {\n var oldstop = stop,\n args = Array.prototype.slice.call(arguments, 2),\n listeners = eve.listeners(name),\n z = 0,\n l,\n indexed = [],\n queue = {},\n out = [],\n ce = current_event;\n out.firstDefined = firstDefined;\n out.lastDefined = lastDefined;\n current_event = name;\n stop = 0;\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n indexed.push(listeners[i].zIndex);\n if (listeners[i].zIndex < 0) {\n queue[listeners[i].zIndex] = listeners[i];\n }\n }\n indexed.sort(numsort);\n while (indexed[z] < 0) {\n l = queue[indexed[z++]];\n out.push(l.apply(scope, args));\n if (stop) {\n stop = oldstop;\n return out;\n }\n }\n for (i = 0; i < ii; i++) {\n l = listeners[i];\n if (\"zIndex\" in l) {\n if (l.zIndex == indexed[z]) {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n do {\n z++;\n l = queue[indexed[z]];\n l && out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n } while (l)\n } else {\n queue[l.zIndex] = l;\n }\n } else {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n }\n }\n stop = oldstop;\n current_event = ce;\n return out;\n };\n // Undocumented. Debug only.\n eve._events = events;\n /*\\\n * eve.listeners\n [ method ]\n\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n = (array) array of event handlers\n \\*/\n eve.listeners = function (name) {\n var names = isArray(name) ? name : name.split(separator),\n e = events,\n item,\n items,\n k,\n i,\n ii,\n j,\n jj,\n nes,\n es = [e],\n out = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n nes = [];\n for (j = 0, jj = es.length; j < jj; j++) {\n e = es[j].n;\n items = [e[names[i]], e[wildcard]];\n k = 2;\n while (k--) {\n item = items[k];\n if (item) {\n nes.push(item);\n out = out.concat(item.f || []);\n }\n }\n }\n es = nes;\n }\n return out;\n };\n /*\\\n * eve.separator\n [ method ]\n\n * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours\n * here. Be aware that if you pass a string longer than one character it will be treated as\n * a list of characters.\n\n - separator (string) new separator. Empty string resets to default: `.` or `/`.\n \\*/\n eve.separator = function (sep) {\n if (sep) {\n sep = Str(sep).replace(/(?=[\\.\\^\\]\\[\\-])/g, \"\\\\\");\n sep = \"[\" + sep + \"]\";\n separator = new RegExp(sep);\n } else {\n separator = /[\\.\\/]/;\n }\n };\n /*\\\n * eve.on\n [ method ]\n **\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n | eve.on(\"*.under.*\", f);\n | eve(\"mouse.under.floor\"); // triggers f\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n - name (array) if you don’t want to use separators, you can use array of strings\n - f (function) event handler function\n **\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n > Example:\n | eve.on(\"mouse\", eatIt)(2);\n | eve.on(\"mouse\", scream);\n | eve.on(\"mouse\", catchIt)(1);\n * This will ensure that `catchIt` function will be called before `eatIt`.\n *\n * If you want to put your handler before non-indexed handlers, specify a negative value.\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n \\*/\n eve.on = function (name, f) {\n if (typeof f != \"function\") {\n return function () {};\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n for (var i = 0, ii = names.length; i < ii; i++) {\n (function (name) {\n var names = isArray(name) ? name : Str(name).split(separator),\n e = events,\n exist;\n for (var i = 0, ii = names.length; i < ii; i++) {\n e = e.n;\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n }\n e.f = e.f || [];\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n exist = true;\n break;\n }\n !exist && e.f.push(f);\n }(names[i]));\n }\n return function (zIndex) {\n if (+zIndex == +zIndex) {\n f.zIndex = +zIndex;\n }\n };\n };\n /*\\\n * eve.f\n [ method ]\n **\n * Returns function that will fire given event with optional arguments.\n * Arguments that will be passed to the result function will be also\n * concated to the list of final arguments.\n | el.onclick = eve.f(\"click\", 1, 2);\n | eve.on(\"click\", function (a, b, c) {\n | console.log(a, b, c); // 1, 2, [event object]\n | });\n - event (string) event name\n - varargs (…) and any other arguments\n = (function) possible event handler function\n \\*/\n eve.f = function (event) {\n var attrs = [].slice.call(arguments, 1);\n return function () {\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n };\n };\n /*\\\n * eve.stop\n [ method ]\n **\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n \\*/\n eve.stop = function () {\n stop = 1;\n };\n /*\\\n * eve.nt\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n - subname (string) #optional subname of the event\n **\n = (string) name of the event, if `subname` is not specified\n * or\n = (boolean) `true`, if current event’s name contains `subname`\n \\*/\n eve.nt = function (subname) {\n var cur = isArray(current_event) ? current_event.join(\".\") : current_event;\n if (subname) {\n return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(cur);\n }\n return cur;\n };\n /*\\\n * eve.nts\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n **\n = (array) names of the event\n \\*/\n eve.nts = function () {\n return isArray(current_event) ? current_event : current_event.split(separator);\n };\n /*\\\n * eve.off\n [ method ]\n **\n * Removes given function from the list of event listeners assigned to given name.\n * If no arguments specified all the events will be cleared.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n \\*/\n /*\\\n * eve.unbind\n [ method ]\n **\n * See @eve.off\n \\*/\n eve.off = eve.unbind = function (name, f) {\n if (!name) {\n eve._events = events = {n: {}};\n return;\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n if (names.length > 1) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n eve.off(names[i], f);\n }\n return;\n }\n names = isArray(name) ? name : Str(name).split(separator);\n var e,\n key,\n splice,\n i, ii, j, jj,\n cur = [events],\n inodes = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n for (j = 0; j < cur.length; j += splice.length - 2) {\n splice = [j, 1];\n e = cur[j].n;\n if (names[i] != wildcard) {\n if (e[names[i]]) {\n splice.push(e[names[i]]);\n inodes.unshift({\n n: e,\n name: names[i]\n });\n }\n } else {\n for (key in e) if (e[has](key)) {\n splice.push(e[key]);\n inodes.unshift({\n n: e,\n name: key\n });\n }\n }\n cur.splice.apply(cur, splice);\n }\n }\n for (i = 0, ii = cur.length; i < ii; i++) {\n e = cur[i];\n while (e.n) {\n if (f) {\n if (e.f) {\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n e.f.splice(j, 1);\n break;\n }\n !e.f.length && delete e.f;\n }\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n var funcs = e.n[key].f;\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n funcs.splice(j, 1);\n break;\n }\n !funcs.length && delete e.n[key].f;\n }\n } else {\n delete e.f;\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n delete e.n[key].f;\n }\n }\n e = e.n;\n }\n }\n // prune inner nodes in path\n prune: for (i = 0, ii = inodes.length; i < ii; i++) {\n e = inodes[i];\n for (key in e.n[e.name].f) {\n // not empty (has listeners)\n continue prune;\n }\n for (key in e.n[e.name].n) {\n // not empty (has children)\n continue prune;\n }\n // is empty\n delete e.n[e.name];\n }\n };\n /*\\\n * eve.once\n [ method ]\n **\n * Binds given event handler with a given name to only run once then unbind itself.\n | eve.once(\"login\", f);\n | eve(\"login\"); // triggers f\n | eve(\"login\"); // no listeners\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) same return function as @eve.on\n \\*/\n eve.once = function (name, f) {\n var f2 = function () {\n eve.off(name, f2);\n return f.apply(this, arguments);\n };\n return eve.on(name, f2);\n };\n /*\\\n * eve.version\n [ property (string) ]\n **\n * Current version of the library.\n \\*/\n eve.version = version;\n eve.toString = function () {\n return \"You are running Eve \" + version;\n };\n glob.eve = eve;\n typeof module != \"undefined\" && module.exports ? module.exports = eve : typeof define === \"function\" && define.amd ? define(\"eve\", [], function () { return eve; }) : glob.eve = eve;\n})(typeof window != \"undefined\" ? window : this);\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.defaultProps=void 0;var types_1=require(\"./types\");exports.defaultProps={activeIndex:0,animationDuration:400,animationEasingFunction:\"ease\",animationType:types_1.AnimationType.SLIDE,autoHeight:!1,autoWidth:!1,autoPlay:!1,autoPlayControls:!1,autoPlayDirection:types_1.AutoplayDirection.LTR,autoPlayInterval:400,autoPlayStrategy:types_1.AutoPlayStrategy.DEFAULT,children:void 0,controlsStrategy:types_1.ControlsStrategy.DEFAULT,disableButtonsControls:!1,disableDotsControls:!1,disableSlideInfo:!0,infinite:!1,innerWidth:void 0,items:void 0,keyboardNavigation:!1,mouseTracking:!1,syncStateOnPropsUpdate:!0,name:\"\",paddingLeft:0,paddingRight:0,responsive:void 0,swipeDelta:20,swipeExtraPadding:200,ssrSilentMode:!0,touchTracking:!0,touchMoveDefaultEvents:!0,onInitialized:function(){},onResized:function(){},onUpdated:function(){},onResizeEvent:void 0,onSlideChange:function(){},onSlideChanged:function(){}};","\"use strict\";var __extends=function(){var n=function(t,e){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}))(t,e)};return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),__assign=function(){return(__assign=Object.assign||function(t){for(var e,i=1,n=arguments.length;ir[0]&&e[1]t?__assign(__assign({},o),{position:t}):o})});exports.mapPositionCoords=mapPositionCoords;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.isVerticalTouchmoveDetected=exports.getFadeoutAnimationPosition=exports.getFadeoutAnimationIndex=exports.getSwipeTouchendIndex=exports.getSwipeTouchendPosition=exports.getSwipeTransformationCursor=exports.getTransformationItemIndex=exports.getSwipeShiftValue=exports.getItemCoords=exports.getIsLeftDirection=exports.shouldRecalculateSwipePosition=exports.getSwipeLimitMax=exports.getSwipeLimitMin=exports.shouldCancelSlideAnimation=exports.shouldRecalculateSlideIndex=exports.getUpdateSlidePositionIndex=exports.getActiveIndex=exports.getStartIndex=exports.getShiftIndex=void 0;var getShiftIndex=function(e,t){return(e=void 0===e?0:e)+(t=void 0===t?0:t)},getStartIndex=(exports.getShiftIndex=getShiftIndex,function(e,t){if(void 0===e&&(e=0),t=void 0===t?0:t){if(t<=e)return t-1;if(0=i}),getIsLeftDirection=(exports.shouldRecalculateSwipePosition=shouldRecalculateSwipePosition,function(e){return(e=void 0===e?0:e)<0}),getItemCoords=(exports.getIsLeftDirection=getIsLeftDirection,function(e,t){return(t=void 0===t?[]:t).slice(e=void 0===e?0:e)[0]||{position:0,width:0}}),getSwipeShiftValue=(exports.getItemCoords=getItemCoords,function(e,t){return void 0===e&&(e=0),void 0===t&&(t=[]),(0,exports.getItemCoords)(e,t).position}),getTransformationItemIndex=(exports.getSwipeShiftValue=getSwipeShiftValue,function(e,t){return void 0===t&&(t=0),(e=void 0===e?[]:e).findIndex(function(e){return e.position>=Math.abs(t)})}),getSwipeTransformationCursor=(exports.getTransformationItemIndex=getTransformationItemIndex,function(e,t,i){void 0===e&&(e=[]),void 0===t&&(t=0),void 0===i&&(i=0);e=(0,exports.getTransformationItemIndex)(e,t);return(0,exports.getIsLeftDirection)(i)?e:e-1}),getSwipeTouchendPosition=(exports.getSwipeTransformationCursor=getSwipeTransformationCursor,function(e,t,i){void 0===i&&(i=0);var o=e.infinite,n=e.autoWidth,r=e.isStageContentPartial,s=e.swipeAllowedPositionMax,e=e.transformationSet,i=(0,exports.getSwipeTransformationCursor)(e,i,t),t=(0,exports.getItemCoords)(i,e).position;if(!o){if(n&&r)return 0;if(s\",s=n?types_1.Classnames.BUTTON_PREV:types_1.Classnames.BUTTON_NEXT,t=n?types_1.Classnames.BUTTON_PREV_WRAPPER:types_1.Classnames.BUTTON_NEXT_WRAPPER,n=n?types_1.Classnames.BUTTON_PREV_ITEM:types_1.Classnames.BUTTON_NEXT_ITEM,a=a?types_1.Modifiers.INACTIVE:\"\",n=(0,utils_1.concatClassnames)(n,a),react_1.default.createElement(\"div\",{className:s},react_1.default.createElement(\"div\",{className:t},react_1.default.createElement(\"p\",{className:n,onClick:function(e){return r(e)}},react_1.default.createElement(\"span\",{\"data-area\":e})))))};exports.PrevNextButton=PrevNextButton;","\"use strict\";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}},react_1=(Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SlideInfo=void 0,__importDefault(require(\"react\"))),types_1=require(\"../types\"),utils_1=require(\"../utils\"),SlideInfo=function(e){var t=e.activeIndex,s=e.itemsCount,e=e.renderSlideInfo,t=(0,utils_1.getSlideInfo)(t,s).item;return\"function\"==typeof e?react_1.default.createElement(\"div\",{className:types_1.Classnames.SLIDE_INFO},e({item:t,itemsCount:s})):(e=(0,utils_1.concatClassnames)(types_1.Classnames.SLIDE_INFO_ITEM,types_1.Modifiers.SEPARATOR),react_1.default.createElement(\"div\",{className:types_1.Classnames.SLIDE_INFO},react_1.default.createElement(\"span\",{className:types_1.Classnames.SLIDE_INFO_ITEM},t),react_1.default.createElement(\"span\",{className:e},\"/\"),react_1.default.createElement(\"span\",{className:types_1.Classnames.SLIDE_INFO_ITEM},s)))};exports.SlideInfo=SlideInfo;","\"use strict\";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}},react_1=(Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.StageItem=void 0,__importDefault(require(\"react\"))),StageItem=function(e){var t=e.item,r=e.className,e=e.styles;return react_1.default.createElement(\"li\",{style:e,className:r},t)};exports.StageItem=StageItem;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PrevNextButton=exports.PlayPauseButton=exports.DotsNavigation=exports.StageItem=exports.SlideInfo=void 0;var SlideInfo_1=require(\"./SlideInfo\"),StageItem_1=(Object.defineProperty(exports,\"SlideInfo\",{enumerable:!0,get:function(){return SlideInfo_1.SlideInfo}}),require(\"./StageItem\")),DotsNavigation_1=(Object.defineProperty(exports,\"StageItem\",{enumerable:!0,get:function(){return StageItem_1.StageItem}}),require(\"./DotsNavigation\")),PlayPauseButton_1=(Object.defineProperty(exports,\"DotsNavigation\",{enumerable:!0,get:function(){return DotsNavigation_1.DotsNavigation}}),require(\"./PlayPauseButton\")),PrevNextButton_1=(Object.defineProperty(exports,\"PlayPauseButton\",{enumerable:!0,get:function(){return PlayPauseButton_1.PlayPauseButton}}),require(\"./PrevNextButton\"));Object.defineProperty(exports,\"PrevNextButton\",{enumerable:!0,get:function(){return PrevNextButton_1.PrevNextButton}});","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n slide: require('./menus/slide'),\n stack: require('./menus/stack'),\n elastic: require('./menus/elastic'),\n bubble: require('./menus/bubble'),\n push: require('./menus/push'),\n pushRotate: require('./menus/pushRotate'),\n scaleDown: require('./menus/scaleDown'),\n scaleRotate: require('./menus/scaleRotate'),\n fallDown: require('./menus/fallDown'),\n reveal: require('./menus/reveal')\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar BurgerIcon = (function (_Component) {\n _inherits(BurgerIcon, _Component);\n\n function BurgerIcon(props) {\n _classCallCheck(this, BurgerIcon);\n\n _get(Object.getPrototypeOf(BurgerIcon.prototype), 'constructor', this).call(this, props);\n this.state = {\n hover: false\n };\n }\n\n _createClass(BurgerIcon, [{\n key: 'getLineStyle',\n value: function getLineStyle(index) {\n return _extends({\n position: 'absolute',\n height: '20%',\n left: 0,\n right: 0,\n top: 20 * (index * 2) + '%',\n opacity: this.state.hover ? 0.6 : 1\n }, this.state.hover && this.props.styles.bmBurgerBarsHover);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon = undefined;\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-icon ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmIcon)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n null,\n [0, 1, 2].map(function (bar) {\n return _react2['default'].createElement('span', {\n key: bar,\n className: ('bm-burger-bars ' + _this.props.barClassName + ' ' + (_this.state.hover ? 'bm-burger-bars-hover' : '')).trim(),\n style: _extends({}, _this.getLineStyle(bar), _this.props.styles.bmBurgerBars)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-burger-button ' + this.props.className).trim(),\n style: _extends({ zIndex: 1000 }, this.props.styles.bmBurgerButton)\n },\n _react2['default'].createElement(\n 'button',\n {\n type: 'button',\n id: 'react-burger-menu-btn',\n onClick: this.props.onClick,\n onMouseOver: function () {\n _this.setState({ hover: true });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: true });\n }\n },\n onMouseOut: function () {\n _this.setState({ hover: false });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: false });\n }\n },\n style: buttonStyle\n },\n 'Open Menu'\n ),\n icon\n );\n }\n }]);\n\n return BurgerIcon;\n})(_react.Component);\n\nexports['default'] = BurgerIcon;\n\nBurgerIcon.propTypes = {\n barClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n styles: _propTypes2['default'].object\n};\n\nBurgerIcon.defaultProps = {\n barClassName: '',\n className: '',\n styles: {}\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar CrossIcon = (function (_Component) {\n _inherits(CrossIcon, _Component);\n\n function CrossIcon() {\n _classCallCheck(this, CrossIcon);\n\n _get(Object.getPrototypeOf(CrossIcon.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CrossIcon, [{\n key: 'getCrossStyle',\n value: function getCrossStyle(type) {\n return {\n position: 'absolute',\n width: 3,\n height: 14,\n transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon;\n var buttonWrapperStyle = {\n position: 'absolute',\n width: 24,\n height: 24,\n right: 8,\n top: 8\n };\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-cross ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmCross)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n { style: { position: 'absolute', top: '6px', right: '14px' } },\n ['before', 'after'].map(function (type, i) {\n return _react2['default'].createElement('span', {\n key: i,\n className: ('bm-cross ' + _this.props.crossClassName).trim(),\n style: _extends({}, _this.getCrossStyle(type), _this.props.styles.bmCross)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-cross-button ' + this.props.className).trim(),\n style: _extends({}, buttonWrapperStyle, this.props.styles.bmCrossButton)\n },\n _react2['default'].createElement(\n 'button',\n _extends({\n type: 'button',\n id: 'react-burger-cross-btn',\n onClick: this.props.onClick,\n style: buttonStyle\n }, !this.props.isOpen && { tabIndex: -1 }),\n 'Close Menu'\n ),\n icon\n );\n }\n }]);\n\n return CrossIcon;\n})(_react.Component);\n\nexports['default'] = CrossIcon;\n\nCrossIcon.propTypes = {\n crossClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n isOpen: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object\n};\n\nCrossIcon.defaultProps = {\n crossClassName: '',\n className: '',\n styles: {},\n isOpen: false\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar styles = {\n overlay: function overlay(isOpen) {\n return {\n position: 'fixed',\n zIndex: 1000,\n width: '100%',\n height: '100%',\n background: 'rgba(0, 0, 0, 0.3)',\n opacity: isOpen ? 1 : 0,\n MozTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n MsTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n OTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transition: isOpen ? 'opacity 0.3s' : 'opacity 0.3s, transform 0s 0.3s'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n zIndex: 1100,\n width: width,\n height: '100%',\n MozTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n menu: function menu() {\n return {\n height: '100%',\n boxSizing: 'border-box',\n overflow: 'auto'\n };\n },\n\n itemList: function itemList() {\n return {\n height: '100%'\n };\n },\n\n item: function item() {\n return {\n display: 'block'\n };\n }\n};\n\nexports['default'] = styles;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports.focusOnFirstMenuItem = focusOnFirstMenuItem;\nexports.focusOnLastMenuItem = focusOnLastMenuItem;\nexports.focusOnCrossButton = focusOnCrossButton;\nexports.focusOnMenuButton = focusOnMenuButton;\nexports.focusOnMenuItem = focusOnMenuItem;\nexports.focusOnNextMenuItem = focusOnNextMenuItem;\nexports.focusOnPreviousMenuItem = focusOnPreviousMenuItem;\n\nfunction focusOnFirstMenuItem() {\n var firstItem = Array.from(document.getElementsByClassName('bm-item')).shift();\n if (firstItem) {\n firstItem.focus();\n }\n}\n\nfunction focusOnLastMenuItem() {\n var lastItem = Array.from(document.getElementsByClassName('bm-item')).pop();\n if (lastItem) {\n lastItem.focus();\n }\n}\n\nfunction focusOnCrossButton() {\n var crossButton = document.getElementById('react-burger-cross-btn');\n if (crossButton) {\n crossButton.focus();\n }\n}\n\nfunction focusOnMenuButton() {\n var menuButton = document.getElementById('react-burger-menu-btn');\n if (menuButton) {\n menuButton.focus();\n }\n}\n\nfunction focusOnMenuItem(siblingType) {\n if (document.activeElement.className.includes('bm-item')) {\n var sibling = document.activeElement[siblingType];\n if (sibling) {\n sibling.focus();\n } else {\n focusOnCrossButton();\n }\n } else {\n if (siblingType === 'previousElementSibling') {\n focusOnLastMenuItem();\n } else {\n focusOnFirstMenuItem();\n }\n }\n}\n\nfunction focusOnNextMenuItem() {\n focusOnMenuItem('nextElementSibling');\n}\n\nfunction focusOnPreviousMenuItem() {\n focusOnMenuItem('previousElementSibling');\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nexports['default'] = function () {\n var Snap = undefined;\n try {\n Snap = require('snapsvg-cjs');\n } finally {\n return Snap;\n }\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pxToNum = function pxToNum(val) {\n return parseInt(val.slice(0, -2), 10);\n};\nexports.pxToNum = pxToNum;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _helpersBaseStyles = require('./helpers/baseStyles');\n\nvar _helpersBaseStyles2 = _interopRequireDefault(_helpersBaseStyles);\n\nvar _helpersDom = require('./helpers/dom');\n\nvar _componentsBurgerIcon = require('./components/BurgerIcon');\n\nvar _componentsBurgerIcon2 = _interopRequireDefault(_componentsBurgerIcon);\n\nvar _componentsCrossIcon = require('./components/CrossIcon');\n\nvar _componentsCrossIcon2 = _interopRequireDefault(_componentsCrossIcon);\n\nexports['default'] = function (styles) {\n if (!styles) {\n throw new Error('No styles supplied');\n }\n\n var ARROW_DOWN = 'ArrowDown';\n var ARROW_UP = 'ArrowUp';\n var ESCAPE = 'Escape';\n var SPACE = ' ';\n var HOME = 'Home';\n var END = 'End';\n\n function usePrevious(value) {\n var ref = _react2['default'].useRef(value);\n _react2['default'].useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n }\n\n var Menu = function Menu(props) {\n var defaultProps = {\n bodyClassName: '',\n burgerBarClassName: '',\n burgerButtonClassName: '',\n className: '',\n crossButtonClassName: '',\n crossClassName: '',\n disableAutoFocus: false,\n disableCloseOnEsc: false,\n htmlClassName: '',\n id: '',\n itemClassName: '',\n itemListClassName: '',\n menuClassName: '',\n morphShapeClassName: '',\n noOverlay: false,\n noTransition: false,\n onStateChange: function onStateChange() {},\n outerContainerId: '',\n overlayClassName: '',\n pageWrapId: '',\n styles: {},\n width: 300,\n onIconHoverChange: function onIconHoverChange() {},\n itemListElement: 'nav'\n };\n props = _extends({}, defaultProps, props);\n\n var _React$useState = _react2['default'].useState(false);\n\n var _React$useState2 = _slicedToArray(_React$useState, 2);\n\n var isOpen = _React$useState2[0];\n var setIsOpen = _React$useState2[1];\n\n var timeoutId = _react2['default'].useRef();\n var toggleOptions = _react2['default'].useRef({});\n var prevIsOpenProp = usePrevious(props.isOpen);\n\n _react2['default'].useEffect(function () {\n if (props.isOpen) {\n toggleMenu({ isOpen: true, noStateChange: true });\n }\n\n return function cleanup() {\n applyWrapperStyles(false);\n clearCurrentTimeout();\n };\n }, []);\n\n _react2['default'].useEffect(function () {\n var wasToggled = typeof props.isOpen !== 'undefined' && props.isOpen !== isOpen && props.isOpen !== prevIsOpenProp;\n\n if (wasToggled) {\n toggleMenu();\n // Toggling changes SVG animation requirements, so defer these until next update\n return;\n }\n\n if (styles.svg) {\n (function () {\n var morphShape = document.getElementById('bm-morph-shape');\n var path = styles.svg.lib(morphShape).select('path');\n\n if (isOpen) {\n // Animate SVG path\n styles.svg.animate(path);\n } else {\n // Reset path (timeout ensures animation happens off screen)\n setTimeout(function () {\n path.attr('d', styles.svg.pathInitial);\n }, 300);\n }\n })();\n }\n });\n\n _react2['default'].useEffect(function () {\n var _toggleOptions$current = toggleOptions.current;\n var noStateChange = _toggleOptions$current.noStateChange;\n var focusOnLastItem = _toggleOptions$current.focusOnLastItem;\n\n if (!noStateChange) {\n props.onStateChange({ isOpen: isOpen });\n }\n\n if (!props.disableAutoFocus) {\n // For accessibility reasons, ensures that when we toggle open,\n // we focus the first or last menu item according to given parameter\n if (isOpen) {\n focusOnLastItem ? (0, _helpersDom.focusOnLastMenuItem)() : (0, _helpersDom.focusOnFirstMenuItem)();\n } else {\n if (document.activeElement) {\n document.activeElement.blur();\n } else {\n document.body.blur(); // Needed for IE\n }\n }\n }\n\n // Timeout ensures wrappers are cleared after animation finishes\n clearCurrentTimeout();\n timeoutId.current = setTimeout(function () {\n timeoutId.current = null;\n if (!isOpen) {\n applyWrapperStyles(false);\n }\n }, 500);\n\n // Bind keydown handlers (or custom function if supplied)\n var defaultOnKeyDown = isOpen ? onKeyDownOpen : onKeyDownClosed;\n var onKeyDown = props.customOnKeyDown || defaultOnKeyDown;\n window.addEventListener('keydown', onKeyDown);\n\n return function cleanup() {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen]);\n\n function toggleMenu() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n toggleOptions.current = options;\n\n applyWrapperStyles();\n\n // Ensures wrapper styles are applied before the menu is toggled\n setTimeout(function () {\n setIsOpen(function (open) {\n return typeof options.isOpen !== 'undefined' ? options.isOpen : !open;\n });\n });\n }\n\n function open() {\n if (typeof props.onOpen === 'function') {\n props.onOpen();\n } else {\n toggleMenu();\n }\n }\n\n function close() {\n if (typeof props.onClose === 'function') {\n props.onClose();\n } else {\n toggleMenu();\n }\n }\n\n function getStyle(style, index) {\n var _props = props;\n var width = _props.width;\n var right = _props.right;\n\n var formattedWidth = typeof width !== 'string' ? width + 'px' : width;\n return style(isOpen, formattedWidth, right, index);\n }\n\n // Builds styles incrementally for a given element\n function getStyles(el, index, inline) {\n var propName = 'bm' + el.replace(el.charAt(0), el.charAt(0).toUpperCase());\n\n // Set base styles\n var output = _helpersBaseStyles2['default'][el] ? getStyle(_helpersBaseStyles2['default'][el]) : {};\n\n // Add animation-specific styles\n if (styles[el]) {\n output = _extends({}, output, getStyle(styles[el], index + 1));\n }\n\n // Add custom styles\n if (props.styles[propName]) {\n output = _extends({}, output, props.styles[propName]);\n }\n\n // Add element inline styles\n if (inline) {\n output = _extends({}, output, inline);\n }\n\n // Remove transition if required\n // (useful if rendering open initially)\n if (props.noTransition) {\n delete output.transition;\n }\n\n return output;\n }\n\n // Sets or unsets styles on DOM elements outside the menu component\n // This is necessary for correct page interaction with some of the menus\n // Throws and returns if the required external elements don't exist,\n // which means any external page animations won't be applied\n function handleExternalWrapper(id, wrapperStyles, set) {\n var wrapper = document.getElementById(id);\n\n if (!wrapper) {\n console.error(\"Element with ID '\" + id + \"' not found\");\n return;\n }\n\n var builtStyles = getStyle(wrapperStyles);\n\n for (var prop in builtStyles) {\n if (builtStyles.hasOwnProperty(prop)) {\n wrapper.style[prop] = set ? builtStyles[prop] : '';\n }\n }\n\n // Prevent any horizontal scroll\n // Only set overflow-x as an inline style if htmlClassName or\n // bodyClassName is not passed in. Otherwise, it is up to the caller to\n // decide if they want to set the overflow style in CSS using the custom\n // class names\n var applyOverflow = function applyOverflow(el) {\n return el.style['overflow-x'] = set ? 'hidden' : '';\n };\n if (!props.htmlClassName) {\n applyOverflow(document.querySelector('html'));\n }\n if (!props.bodyClassName) {\n applyOverflow(document.querySelector('body'));\n }\n }\n\n // Applies component-specific styles to external wrapper elements\n function applyWrapperStyles() {\n var set = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n var applyClass = function applyClass(el, className) {\n return el.classList[set ? 'add' : 'remove'](className);\n };\n\n if (props.htmlClassName) {\n applyClass(document.querySelector('html'), props.htmlClassName);\n }\n if (props.bodyClassName) {\n applyClass(document.querySelector('body'), props.bodyClassName);\n }\n\n if (styles.pageWrap && props.pageWrapId) {\n handleExternalWrapper(props.pageWrapId, styles.pageWrap, set);\n }\n\n if (styles.outerContainer && props.outerContainerId) {\n handleExternalWrapper(props.outerContainerId, styles.outerContainer, set);\n }\n\n var menuWrap = document.querySelector('.bm-menu-wrap');\n if (menuWrap) {\n if (set) {\n menuWrap.removeAttribute('hidden');\n } else {\n menuWrap.setAttribute('hidden', true);\n }\n }\n }\n\n // Avoids potentially attempting to update an unmounted component\n function clearCurrentTimeout() {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n }\n\n function onKeyDownOpen(e) {\n e = e || window.event;\n switch (e.key) {\n case ESCAPE:\n // Close on ESC, unless disabled\n if (!props.disableCloseOnEsc) {\n close();\n (0, _helpersDom.focusOnMenuButton)();\n }\n break;\n case ARROW_DOWN:\n (0, _helpersDom.focusOnNextMenuItem)();\n break;\n case ARROW_UP:\n (0, _helpersDom.focusOnPreviousMenuItem)();\n break;\n case HOME:\n (0, _helpersDom.focusOnFirstMenuItem)();\n break;\n case END:\n (0, _helpersDom.focusOnLastMenuItem)();\n break;\n }\n }\n\n function onKeyDownClosed(e) {\n e = e || window.event;\n // Key downs came from menu button\n if (e.target === document.getElementById('react-burger-menu-btn')) {\n switch (e.key) {\n case ARROW_DOWN:\n case SPACE:\n // If down arrow, space or enter, open menu and focus on first menuitem\n toggleMenu();\n break;\n case ARROW_UP:\n // If arrow up, open menu and focus on last menuitem\n toggleMenu({ focusOnLastItem: true });\n break;\n }\n }\n }\n\n function handleOverlayClick() {\n if (props.disableOverlayClick === true || typeof props.disableOverlayClick === 'function' && props.disableOverlayClick()) {\n return;\n } else {\n close();\n }\n }\n\n return _react2['default'].createElement(\n 'div',\n null,\n !props.noOverlay && _react2['default'].createElement('div', {\n className: ('bm-overlay ' + props.overlayClassName).trim(),\n onClick: handleOverlayClick,\n style: getStyles('overlay')\n }),\n props.customBurgerIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('burgerIcon') },\n _react2['default'].createElement(_componentsBurgerIcon2['default'], {\n onClick: open,\n styles: props.styles,\n customIcon: props.customBurgerIcon,\n className: props.burgerButtonClassName,\n barClassName: props.burgerBarClassName,\n onIconStateChange: props.onIconStateChange\n })\n ),\n _react2['default'].createElement(\n 'div',\n {\n id: props.id,\n className: ('bm-menu-wrap ' + props.className).trim(),\n style: getStyles('menuWrap'),\n 'aria-hidden': !isOpen\n },\n styles.svg && _react2['default'].createElement(\n 'div',\n {\n id: 'bm-morph-shape',\n className: ('bm-morph-shape ' + props.morphShapeClassName).trim(),\n style: getStyles('morphShape')\n },\n _react2['default'].createElement(\n 'svg',\n {\n width: '100%',\n height: '100%',\n viewBox: '0 0 100 800',\n preserveAspectRatio: 'none'\n },\n _react2['default'].createElement('path', { d: styles.svg.pathInitial })\n )\n ),\n _react2['default'].createElement(\n 'div',\n {\n className: ('bm-menu ' + props.menuClassName).trim(),\n style: getStyles('menu')\n },\n _react2['default'].createElement(props.itemListElement, {\n className: ('bm-item-list ' + props.itemListClassName).trim(),\n style: getStyles('itemList')\n }, _react2['default'].Children.map(props.children, function (item, index) {\n if (item) {\n var classList = ['bm-item', props.itemClassName, item.props.className].filter(function (className) {\n return !!className;\n }).join(' ');\n var extraProps = _extends({\n key: index,\n className: classList,\n style: getStyles('item', index, item.props.style)\n }, !isOpen && { tabIndex: -1 });\n return _react2['default'].cloneElement(item, extraProps);\n }\n }))\n ),\n props.customCrossIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('closeButton') },\n _react2['default'].createElement(_componentsCrossIcon2['default'], {\n onClick: close,\n styles: props.styles,\n customIcon: props.customCrossIcon,\n className: props.crossButtonClassName,\n crossClassName: props.crossClassName,\n isOpen: isOpen\n })\n )\n )\n );\n };\n\n Menu.propTypes = {\n bodyClassName: _propTypes2['default'].string,\n burgerBarClassName: _propTypes2['default'].string,\n burgerButtonClassName: _propTypes2['default'].string,\n className: _propTypes2['default'].string,\n crossButtonClassName: _propTypes2['default'].string,\n crossClassName: _propTypes2['default'].string,\n customBurgerIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customCrossIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customOnKeyDown: _propTypes2['default'].func,\n disableAutoFocus: _propTypes2['default'].bool,\n disableCloseOnEsc: _propTypes2['default'].bool,\n disableOverlayClick: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].func]),\n htmlClassName: _propTypes2['default'].string,\n id: _propTypes2['default'].string,\n isOpen: _propTypes2['default'].bool,\n itemClassName: _propTypes2['default'].string,\n itemListClassName: _propTypes2['default'].string,\n itemListElement: _propTypes2['default'].oneOf(['div', 'nav']),\n menuClassName: _propTypes2['default'].string,\n morphShapeClassName: _propTypes2['default'].string,\n noOverlay: _propTypes2['default'].bool,\n noTransition: _propTypes2['default'].bool,\n onClose: _propTypes2['default'].func,\n onIconHoverChange: _propTypes2['default'].func,\n onOpen: _propTypes2['default'].func,\n onStateChange: _propTypes2['default'].func,\n outerContainerId: styles && styles.outerContainer ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n overlayClassName: _propTypes2['default'].string,\n pageWrapId: styles && styles.pageWrap ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n right: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object,\n width: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string])\n };\n\n return Menu;\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar BUBBLE_WIDTH = 140;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z',\n pathOpen: 'M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z',\n animate: function animate(path) {\n var pos = 0;\n var steps = this.pathOpen.split(';');\n var stepsTotal = steps.length;\n var mina = window.mina;\n\n var nextStep = function nextStep() {\n if (pos > stepsTotal - 1) return;\n\n path.animate({ path: steps[pos] }, pos === 0 ? 400 : 500, pos === 0 ? mina.easein : mina.elastic, function () {\n nextStep();\n });\n\n pos++;\n };\n\n nextStep();\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: '100%',\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n MsTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n OTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n WebkitTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n transform: right ? 'rotateY(180deg)' : 'rotateY(0deg)'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: isOpen ? 'transform 0.4s 0s' : 'transform 0.4s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n position: 'fixed',\n MozTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s, transform 0.3s 0.4s' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n closeButton: function closeButton(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar MORPH_SHAPE_WIDTH = 120;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',\n pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',\n animate: function animate(path) {\n path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: MORPH_SHAPE_WIDTH,\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : '',\n MsTransform: right ? 'rotateY(180deg)' : '',\n OTransform: right ? 'rotateY(180deg)' : '',\n WebkitTransform: right ? 'rotateY(180deg)' : '',\n transform: right ? 'rotateY(180deg)' : ''\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.3s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n width: (0, _helpersUtils.pxToNum)(width) - MORPH_SHAPE_WIDTH,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n overflow: 'visible'\n };\n },\n\n itemList: function itemList(isOpen, width, right) {\n if (right) {\n return {\n position: 'relative',\n left: '-110px',\n width: '170%',\n overflow: 'auto'\n };\n }\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transition: 'all 0.5s ease-in-out'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n perspectiveOrigin: '0% 50%',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transformOrigin: right ? '100% 50%' : '0% 50%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: 'translate3d(0, 0, 0)',\n MsTransform: 'translate3d(0, 0, 0)',\n OTransform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)',\n transform: 'translate3d(0, 0, 0)',\n zIndex: isOpen ? 1000 : -1\n };\n },\n\n overlay: function overlay(isOpen, width, right) {\n return {\n zIndex: 1400,\n MozTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.5s',\n visibility: isOpen ? 'visible' : 'hidden'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s',\n zIndex: 1200,\n position: 'relative'\n };\n },\n\n burgerIcon: function burgerIcon(isOpen, width, right) {\n return {\n MozTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.1s',\n position: 'relative',\n zIndex: 1300\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n MsTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n OTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n WebkitTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transformOrigin: '100%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer() {\n return {\n perspective: '1500px'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s',\n overflow: isOpen ? '' : 'hidden'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0.4s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0s 0.2s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=318 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","module.exports = require('./lib');\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),LeftArrow=function(_a){var customLeftArrow=_a.customLeftArrow,getState=_a.getState,previous=_a.previous,disabled=_a.disabled,rtl=_a.rtl;if(customLeftArrow)return React.cloneElement(customLeftArrow,{onClick:function(){return previous()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to previous slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--left \"+rtlClassName,onClick:function(){return previous()},type:\"button\",disabled:disabled})};exports.LeftArrow=LeftArrow;var RightArrow=function(_a){var customRightArrow=_a.customRightArrow,getState=_a.getState,next=_a.next,disabled=_a.disabled,rtl=_a.rtl;if(customRightArrow)return React.cloneElement(customRightArrow,{onClick:function(){return next()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to next slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--right \"+rtlClassName,onClick:function(){return next()},type:\"button\",disabled:disabled})};exports.RightArrow=RightArrow;","\"use strict\";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])})(d,b)};return function(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),utils_1=require(\"./utils\"),types_1=require(\"./types\"),Dots_1=require(\"./Dots\"),Arrows_1=require(\"./Arrows\"),CarouselItems_1=require(\"./CarouselItems\"),common_1=require(\"./utils/common\"),defaultTransitionDuration=400,defaultTransition=\"transform 400ms ease-in-out\",Carousel=function(_super){function Carousel(props){var _this=_super.call(this,props)||this;return _this.containerRef=React.createRef(),_this.listRef=React.createRef(),_this.state={itemWidth:0,slidesToShow:0,currentSlide:0,totalItems:React.Children.count(props.children),deviceType:\"\",domLoaded:!1,transform:0,containerWidth:0},_this.onResize=_this.onResize.bind(_this),_this.handleDown=_this.handleDown.bind(_this),_this.handleMove=_this.handleMove.bind(_this),_this.handleOut=_this.handleOut.bind(_this),_this.onKeyUp=_this.onKeyUp.bind(_this),_this.handleEnter=_this.handleEnter.bind(_this),_this.setIsInThrottle=_this.setIsInThrottle.bind(_this),_this.next=utils_1.throttle(_this.next.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.previous=utils_1.throttle(_this.previous.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.goToSlide=utils_1.throttle(_this.goToSlide.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.onMove=!1,_this.initialX=0,_this.lastX=0,_this.isAnimationAllowed=!1,_this.direction=\"\",_this.initialY=0,_this.isInThrottle=!1,_this.transformPlaceHolder=0,_this}return __extends(Carousel,_super),Carousel.prototype.resetTotalItems=function(){var _this=this,totalItems=React.Children.count(this.props.children),currentSlide=utils_1.notEnoughChildren(this.state)?0:Math.max(0,Math.min(this.state.currentSlide,totalItems));this.setState({totalItems:totalItems,currentSlide:currentSlide},function(){_this.setContainerAndItemWidth(_this.state.slidesToShow,!0)})},Carousel.prototype.setIsInThrottle=function(isInThrottle){void 0===isInThrottle&&(isInThrottle=!1),this.isInThrottle=isInThrottle},Carousel.prototype.setTransformDirectly=function(position,withAnimation){var additionalTransfrom=this.props.additionalTransfrom;this.transformPlaceHolder=position;var currentTransform=common_1.getTransform(this.state,this.props,this.transformPlaceHolder);this.listRef&&this.listRef.current&&(this.setAnimationDirectly(withAnimation),this.listRef.current.style.transform=\"translate3d(\"+(currentTransform+additionalTransfrom)+\"px,0,0)\")},Carousel.prototype.setAnimationDirectly=function(animationAllowed){this.listRef&&this.listRef.current&&(this.listRef.current.style.transition=animationAllowed?this.props.customTransition||defaultTransition:\"none\")},Carousel.prototype.componentDidMount=function(){this.setState({domLoaded:!0}),this.setItemsToShow(),window.addEventListener(\"resize\",this.onResize),this.onResize(!0),this.props.keyBoardControl&&window.addEventListener(\"keyup\",this.onKeyUp),this.props.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed))},Carousel.prototype.setClones=function(slidesToShow,itemWidth,forResizing,resetCurrentSlide){var _this=this;void 0===resetCurrentSlide&&(resetCurrentSlide=!1),this.isAnimationAllowed=!1;var childrenArr=React.Children.toArray(this.props.children),initialSlide=utils_1.getInitialSlideInInfiniteMode(slidesToShow||this.state.slidesToShow,childrenArr),clones=utils_1.getClones(this.state.slidesToShow,childrenArr),currentSlide=childrenArr.lengthMath.abs(diffY)))return;var _b=utils_1.populateSlidesOnMouseTouchMove(this.state,this.props,this.initialX,this.lastX,clientX,this.transformPlaceHolder),direction=_b.direction,nextPosition=_b.nextPosition,canContinue=_b.canContinue;direction&&(this.direction=direction,canContinue&&void 0!==nextPosition&&this.setTransformDirectly(nextPosition)),this.lastX=clientX}}},Carousel.prototype.handleOut=function(e){this.props.autoPlay&&!this.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed));var shouldDisableOnMobile=\"touchend\"===e.type&&!this.props.swipeable,shouldDisableOnDesktop=(\"mouseleave\"===e.type||\"mouseup\"===e.type)&&!this.props.draggable;if(!shouldDisableOnMobile&&!shouldDisableOnDesktop&&this.onMove){if(this.setAnimationDirectly(!0),\"right\"===this.direction)if(this.initialX-this.lastX>=this.props.minimumTouchDrag){var slidesHavePassed=Math.round((this.initialX-this.lastX)/this.state.itemWidth);this.next(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);if(\"left\"===this.direction)if(this.lastX-this.initialX>this.props.minimumTouchDrag){slidesHavePassed=Math.round((this.lastX-this.initialX)/this.state.itemWidth);this.previous(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);this.resetMoveStatus()}},Carousel.prototype.isInViewport=function(el){var _a=el.getBoundingClientRect(),_b=_a.top,top=void 0===_b?0:_b,_c=_a.left,left=void 0===_c?0:_c,_d=_a.bottom,bottom=void 0===_d?0:_d,_e=_a.right,right=void 0===_e?0:_e;return 0<=top&&0<=left&&bottom<=(window.innerHeight||document.documentElement.clientHeight)&&right<=(window.innerWidth||document.documentElement.clientWidth)},Carousel.prototype.isChildOfCarousel=function(el){return!!(el instanceof Element&&this.listRef&&this.listRef.current)&&this.listRef.current.contains(el)},Carousel.prototype.onKeyUp=function(e){var target=e.target;switch(e.keyCode){case 37:if(this.isChildOfCarousel(target))return this.previous();break;case 39:if(this.isChildOfCarousel(target))return this.next();break;case 9:if(this.isChildOfCarousel(target)&&target instanceof HTMLInputElement&&this.isInViewport(target))return this.next()}},Carousel.prototype.handleEnter=function(e){types_1.isMouseMoveEvent(e)&&this.autoPlay&&this.props.autoPlay&&this.props.pauseOnHover&&(clearInterval(this.autoPlay),this.autoPlay=void 0)},Carousel.prototype.goToSlide=function(slide,skipCallbacks,animationAllowed){var _this=this;if(void 0===animationAllowed&&(animationAllowed=!0),!this.isInThrottle){var itemWidth=this.state.itemWidth,_a=this.props,afterChange=_a.afterChange,beforeChange=_a.beforeChange,previousSlide=this.state.currentSlide;\"function\"!=typeof beforeChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipBeforeChange)||beforeChange(slide,this.getState()),this.isAnimationAllowed=animationAllowed,this.props.shouldResetAutoplay&&this.resetAutoplayInterval(),this.setState({currentSlide:slide,transform:-itemWidth*slide},function(){_this.props.infinite&&_this.correctClonesPosition({domLoaded:!0}),\"function\"!=typeof afterChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipAfterChange)||(Carousel.afterChangeTimeout3=setTimeout(function(){afterChange(previousSlide,_this.getState())},_this.props.transitionDuration||defaultTransitionDuration))})}},Carousel.prototype.getState=function(){return this.state},Carousel.prototype.renderLeftArrow=function(disbaled){var _this=this,_a=this.props,customLeftArrow=_a.customLeftArrow,rtl=_a.rtl;return React.createElement(Arrows_1.LeftArrow,{customLeftArrow:customLeftArrow,getState:function(){return _this.getState()},previous:this.previous,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderRightArrow=function(disbaled){var _this=this,_a=this.props,customRightArrow=_a.customRightArrow,rtl=_a.rtl;return React.createElement(Arrows_1.RightArrow,{customRightArrow:customRightArrow,getState:function(){return _this.getState()},next:this.next,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderButtonGroups=function(){var _this=this,customButtonGroup=this.props.customButtonGroup;return customButtonGroup?React.cloneElement(customButtonGroup,{previous:function(){return _this.previous()},next:function(){return _this.next()},goToSlide:function(slideIndex,skipCallbacks){return _this.goToSlide(slideIndex,skipCallbacks)},carouselState:this.getState()}):null},Carousel.prototype.renderDotsList=function(){var _this=this;return React.createElement(Dots_1.default,{state:this.state,props:this.props,goToSlide:this.goToSlide,getState:function(){return _this.getState()}})},Carousel.prototype.renderCarouselItems=function(){var clones=[];if(this.props.infinite){var childrenArr=React.Children.toArray(this.props.children);clones=utils_1.getClones(this.state.slidesToShow,childrenArr)}return React.createElement(CarouselItems_1.default,{clones:clones,goToSlide:this.goToSlide,state:this.state,notEnoughChildren:utils_1.notEnoughChildren(this.state),props:this.props})},Carousel.prototype.render=function(){var _a=this.props,deviceType=_a.deviceType,arrows=_a.arrows,renderArrowsWhenDisabled=_a.renderArrowsWhenDisabled,removeArrowOnDeviceType=_a.removeArrowOnDeviceType,infinite=_a.infinite,containerClass=_a.containerClass,sliderClass=_a.sliderClass,customTransition=_a.customTransition,additionalTransfrom=_a.additionalTransfrom,renderDotsOutside=_a.renderDotsOutside,renderButtonGroupOutside=_a.renderButtonGroupOutside,className=_a.className,rtl=_a.rtl;\"production\"!==process.env.NODE_ENV&&utils_1.throwError(this.state,this.props);var _b=utils_1.getInitialState(this.state,this.props),shouldRenderOnSSR=_b.shouldRenderOnSSR,shouldRenderAtAll=_b.shouldRenderAtAll,isLeftEndReach=utils_1.isInLeftEnd(this.state),isRightEndReach=utils_1.isInRightEnd(this.state),shouldShowArrows=arrows&&!(removeArrowOnDeviceType&&(deviceType&&-12*slidesToShow?index+2*slidesToShow:currentSlide>=childrenArr.length?childrenArr.length+index:index}function getOriginalIndexLookupTableByClones(slidesToShow,childrenArr){if(childrenArr.length>2*slidesToShow){for(var table={},firstBeginningOfClones=childrenArr.length-2*slidesToShow,firstEndOfClones=childrenArr.length-firstBeginningOfClones,firstCount=firstBeginningOfClones,i=0;i2*slidesToShow?childrenArr.slice(childrenArr.length-2*slidesToShow,childrenArr.length).concat(childrenArr,childrenArr.slice(0,2*slidesToShow)):childrenArr.concat(childrenArr,childrenArr)}function getInitialSlideInInfiniteMode(slidesToShow,childrenArr){return childrenArr.length>2*slidesToShow?2*slidesToShow:childrenArr.length}function checkClonesPosition(_a,childrenArr,props){var isReachingTheEnd,currentSlide=_a.currentSlide,slidesToShow=_a.slidesToShow,itemWidth=_a.itemWidth,totalItems=_a.totalItems,nextSlide=0,nextPosition=0,isReachingTheStart=0===currentSlide,originalFirstSlide=childrenArr.length-(childrenArr.length-2*slidesToShow);return childrenArr.length2*slidesToShow?((isReachingTheEnd=currentSlide>=originalFirstSlide+childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=-itemWidth*(nextSlide=originalFirstSlide+(childrenArr.length-2*slidesToShow)))):((isReachingTheEnd=currentSlide>=2*childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=props.showDots?-itemWidth*(nextSlide=childrenArr.length):-itemWidth*(nextSlide=totalItems/3))),{isReachingTheEnd:isReachingTheEnd,isReachingTheStart:isReachingTheStart,nextSlide:nextSlide,nextPosition:nextPosition}}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getOriginalCounterPart=getOriginalCounterPart,exports.getOriginalIndexLookupTableByClones=getOriginalIndexLookupTableByClones,exports.getClones=getClones,exports.getInitialSlideInInfiniteMode=getInitialSlideInInfiniteMode,exports.checkClonesPosition=checkClonesPosition;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var elementWidth_1=require(\"./elementWidth\");function notEnoughChildren(state){var slidesToShow=state.slidesToShow;return state.totalItems=min&&window.innerWidth<=max&&(slidesToScroll=slidesToSlide)}),slidesToScroll}exports.notEnoughChildren=notEnoughChildren,exports.getInitialState=getInitialState,exports.getIfSlideIsVisbile=getIfSlideIsVisbile,exports.getTransformForCenterMode=getTransformForCenterMode,exports.isInLeftEnd=isInLeftEnd,exports.isInRightEnd=isInRightEnd,exports.getTransformForPartialVsibile=getTransformForPartialVsibile,exports.parsePosition=parsePosition,exports.getTransform=getTransform,exports.getSlidesToSlide=getSlidesToSlide;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\"),common_1=require(\"./common\");function getLookupTableForNextSlides(numberOfDotsToShow,state,props,childrenArr){var table={},slidesToSlide=common_1.getSlidesToSlide(state,props);return Array(numberOfDotsToShow).fill(0).forEach(function(_,i){var nextSlide=clones_1.getOriginalCounterPart(i,state,childrenArr);if(0===i)table[0]=nextSlide;else{var now=table[i-1]+slidesToSlide;table[i]=now}}),table}exports.getLookupTableForNextSlides=getLookupTableForNextSlides;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var hasWarnAboutTypo=!1;function getPartialVisibilityGutter(responsive,partialVisible,serverSideDeviceType,clientSideDeviceType){var gutter=0,deviceType=clientSideDeviceType||serverSideDeviceType;return partialVisible&&deviceType&&(!hasWarnAboutTypo&&\"production\"!==process.env.NODE_ENV&&responsive[deviceType].paritialVisibilityGutter&&(hasWarnAboutTypo=!0,console.warn(\"You appear to be using paritialVisibilityGutter instead of partialVisibilityGutter which will be moved to partialVisibilityGutter in the future completely\")),gutter=responsive[deviceType].partialVisibilityGutter||responsive[deviceType].paritialVisibilityGutter),gutter}function getWidthFromDeviceType(deviceType,responsive){var itemWidth;responsive[deviceType]&&(itemWidth=(100/responsive[deviceType].items).toFixed(1));return itemWidth}function getItemClientSideWidth(props,slidesToShow,containerWidth){return Math.round(containerWidth/(slidesToShow+(props.centerMode?1:0)))}exports.getPartialVisibilityGutter=getPartialVisibilityGutter,exports.getWidthFromDeviceType=getWidthFromDeviceType,exports.getItemClientSideWidth=getItemClientSideWidth;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\");exports.getOriginalCounterPart=clones_1.getOriginalCounterPart,exports.getClones=clones_1.getClones,exports.checkClonesPosition=clones_1.checkClonesPosition,exports.getInitialSlideInInfiniteMode=clones_1.getInitialSlideInInfiniteMode;var elementWidth_1=require(\"./elementWidth\");exports.getWidthFromDeviceType=elementWidth_1.getWidthFromDeviceType,exports.getPartialVisibilityGutter=elementWidth_1.getPartialVisibilityGutter,exports.getItemClientSideWidth=elementWidth_1.getItemClientSideWidth;var common_1=require(\"./common\");exports.getInitialState=common_1.getInitialState,exports.getIfSlideIsVisbile=common_1.getIfSlideIsVisbile,exports.getTransformForCenterMode=common_1.getTransformForCenterMode,exports.getTransformForPartialVsibile=common_1.getTransformForPartialVsibile,exports.isInLeftEnd=common_1.isInLeftEnd,exports.isInRightEnd=common_1.isInRightEnd,exports.notEnoughChildren=common_1.notEnoughChildren,exports.getSlidesToSlide=common_1.getSlidesToSlide;var throttle_1=require(\"./throttle\");exports.throttle=throttle_1.default;var throwError_1=require(\"./throwError\");exports.throwError=throwError_1.default;var next_1=require(\"./next\");exports.populateNextSlides=next_1.populateNextSlides;var previous_1=require(\"./previous\");exports.populatePreviousSlides=previous_1.populatePreviousSlides;var mouseOrTouchMove_1=require(\"./mouseOrTouchMove\");exports.populateSlidesOnMouseTouchMove=mouseOrTouchMove_1.populateSlidesOnMouseTouchMove;","\"use strict\";function populateSlidesOnMouseTouchMove(state,props,initialX,lastX,clientX,transformPlaceHolder){var direction,nextPosition,itemWidth=state.itemWidth,slidesToShow=state.slidesToShow,totalItems=state.totalItems,currentSlide=state.currentSlide,infinite=props.infinite,canContinue=!1,slidesHavePassedRight=Math.round((initialX-lastX)/itemWidth),slidesHavePassedLeft=Math.round((lastX-initialX)/itemWidth),isMovingLeft=initialX {\n this.labelMap[country.label.toLowerCase()] = country.value\n this.valueMap[country.value.toLowerCase()] = country.label\n })\n }\n\n getValue(label) {\n return this.labelMap[label.toLowerCase()]\n }\n\n getLabel(value) {\n return this.valueMap[value.toLowerCase()]\n }\n\n getLabels() {\n return this.data.map(country => country.label)\n }\n\n getValues() {\n return this.data.map(country => country.value)\n }\n\n getLabelList() {\n return this.labelMap\n }\n\n getValueList() {\n return this.valueMap\n }\n\n getData() {\n return this.data\n }\n\n setLabel(value, label) {\n this.data.forEach(country => {\n if (country.value === value) {\n country.label = label\n this.valueMap[country.value.toLowerCase()] = country.label\n }\n })\n\n return this\n }\n\n setEmpty(label) {\n this.data.unshift({\n value: '',\n label: label,\n })\n this.valueMap[''] = label\n this.labelMap[label] = ''\n\n return this\n }\n\n native() {\n this.nativeData = require('./data-native.json')\n this.nativeData.forEach(country => {\n this.labelMap[country.label.toLowerCase()] = country.value\n this.valueMap[country.value.toLowerCase()] = country.label\n })\n\n return this\n }\n}\n\nconst countryList = () => {\n if (!(this instanceof CountryList)) return new CountryList()\n}\n\nmodule.exports = countryList\n","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","window.eve = require('eve')\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar mina = (function (eve) {\n var animations = {},\n requestAnimFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n setTimeout(callback, 16, new Date().getTime());\n return true;\n },\n requestID,\n isArray = Array.isArray || function (a) {\n return a instanceof Array ||\n Object.prototype.toString.call(a) == \"[object Array]\";\n },\n idgen = 0,\n idprefix = \"M\" + (+new Date).toString(36),\n ID = function () {\n return idprefix + (idgen++).toString(36);\n },\n diff = function (a, b, A, B) {\n if (isArray(a)) {\n res = [];\n for (var i = 0, ii = a.length; i < ii; i++) {\n res[i] = diff(a[i], b, A[i], B);\n }\n return res;\n }\n var dif = (A - a) / (B - b);\n return function (bb) {\n return a + dif * (bb - b);\n };\n },\n timer = Date.now || function () {\n return +new Date;\n },\n sta = function (val) {\n var a = this;\n if (val == null) {\n return a.s;\n }\n var ds = a.s - val;\n a.b += a.dur * ds;\n a.B += a.dur * ds;\n a.s = val;\n },\n speed = function (val) {\n var a = this;\n if (val == null) {\n return a.spd;\n }\n a.spd = val;\n },\n duration = function (val) {\n var a = this;\n if (val == null) {\n return a.dur;\n }\n a.s = a.s * val / a.dur;\n a.dur = val;\n },\n stopit = function () {\n var a = this;\n delete animations[a.id];\n a.update();\n eve(\"mina.stop.\" + a.id, a);\n },\n pause = function () {\n var a = this;\n if (a.pdif) {\n return;\n }\n delete animations[a.id];\n a.update();\n a.pdif = a.get() - a.b;\n },\n resume = function () {\n var a = this;\n if (!a.pdif) {\n return;\n }\n a.b = a.get() - a.pdif;\n delete a.pdif;\n animations[a.id] = a;\n frame();\n },\n update = function () {\n var a = this,\n res;\n if (isArray(a.start)) {\n res = [];\n for (var j = 0, jj = a.start.length; j < jj; j++) {\n res[j] = +a.start[j] +\n (a.end[j] - a.start[j]) * a.easing(a.s);\n }\n } else {\n res = +a.start + (a.end - a.start) * a.easing(a.s);\n }\n a.set(res);\n },\n frame = function (timeStamp) {\n // Manual invokation?\n if (!timeStamp) {\n // Frame loop stopped?\n if (!requestID) {\n // Start frame loop...\n requestID = requestAnimFrame(frame);\n }\n return;\n }\n var len = 0;\n for (var i in animations) if (animations.hasOwnProperty(i)) {\n var a = animations[i],\n b = a.get(),\n res;\n len++;\n a.s = (b - a.b) / (a.dur / a.spd);\n if (a.s >= 1) {\n delete animations[i];\n a.s = 1;\n len--;\n (function (a) {\n setTimeout(function () {\n eve(\"mina.finish.\" + a.id, a);\n });\n }(a));\n }\n a.update();\n }\n requestID = len ? requestAnimFrame(frame) : false;\n },\n /*\\\n * mina\n [ method ]\n **\n * Generic animation of numbers\n **\n - a (number) start _slave_ number\n - A (number) end _slave_ number\n - b (number) start _master_ number (start time in general case)\n - B (number) end _master_ number (end time in general case)\n - get (function) getter of _master_ number (see @mina.time)\n - set (function) setter of _slave_ number\n - easing (function) #optional easing function, default is @mina.linear\n = (object) animation descriptor\n o {\n o id (string) animation id,\n o start (number) start _slave_ number,\n o end (number) end _slave_ number,\n o b (number) start _master_ number,\n o s (number) animation status (0..1),\n o dur (number) animation duration,\n o spd (number) animation speed,\n o get (function) getter of _master_ number (see @mina.time),\n o set (function) setter of _slave_ number,\n o easing (function) easing function, default is @mina.linear,\n o status (function) status getter/setter,\n o speed (function) speed getter/setter,\n o duration (function) duration getter/setter,\n o stop (function) animation stopper\n o pause (function) pauses the animation\n o resume (function) resumes the animation\n o update (function) calles setter with the right value of the animation\n o }\n \\*/\n mina = function (a, A, b, B, get, set, easing) {\n var anim = {\n id: ID(),\n start: a,\n end: A,\n b: b,\n s: 0,\n dur: B - b,\n spd: 1,\n get: get,\n set: set,\n easing: easing || mina.linear,\n status: sta,\n speed: speed,\n duration: duration,\n stop: stopit,\n pause: pause,\n resume: resume,\n update: update\n };\n animations[anim.id] = anim;\n var len = 0, i;\n for (i in animations) if (animations.hasOwnProperty(i)) {\n len++;\n if (len == 2) {\n break;\n }\n }\n len == 1 && frame();\n return anim;\n };\n /*\\\n * mina.time\n [ method ]\n **\n * Returns the current time. Equivalent to:\n | function () {\n | return (new Date).getTime();\n | }\n \\*/\n mina.time = timer;\n /*\\\n * mina.getById\n [ method ]\n **\n * Returns an animation by its id\n - id (string) animation's id\n = (object) See @mina\n \\*/\n mina.getById = function (id) {\n return animations[id] || null;\n };\n\n /*\\\n * mina.linear\n [ method ]\n **\n * Default linear easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.linear = function (n) {\n return n;\n };\n /*\\\n * mina.easeout\n [ method ]\n **\n * Easeout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeout = function (n) {\n return Math.pow(n, 1.7);\n };\n /*\\\n * mina.easein\n [ method ]\n **\n * Easein easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easein = function (n) {\n return Math.pow(n, .48);\n };\n /*\\\n * mina.easeinout\n [ method ]\n **\n * Easeinout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeinout = function (n) {\n if (n == 1) {\n return 1;\n }\n if (n == 0) {\n return 0;\n }\n var q = .48 - n / 1.04,\n Q = Math.sqrt(.1734 + q * q),\n x = Q - q,\n X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n y = -Q - q,\n Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n t = X + Y + .5;\n return (1 - t) * 3 * t * t + t * t * t;\n };\n /*\\\n * mina.backin\n [ method ]\n **\n * Backin easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backin = function (n) {\n if (n == 1) {\n return 1;\n }\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n };\n /*\\\n * mina.backout\n [ method ]\n **\n * Backout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backout = function (n) {\n if (n == 0) {\n return 0;\n }\n n = n - 1;\n var s = 1.70158;\n return n * n * ((s + 1) * n + s) + 1;\n };\n /*\\\n * mina.elastic\n [ method ]\n **\n * Elastic easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.elastic = function (n) {\n if (n == !!n) {\n return n;\n }\n return Math.pow(2, -10 * n) * Math.sin((n - .075) *\n (2 * Math.PI) / .3) + 1;\n };\n /*\\\n * mina.bounce\n [ method ]\n **\n * Bounce easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.bounce = function (n) {\n var s = 7.5625,\n p = 2.75,\n l;\n if (n < 1 / p) {\n l = s * n * n;\n } else {\n if (n < 2 / p) {\n n -= 1.5 / p;\n l = s * n * n + .75;\n } else {\n if (n < 2.5 / p) {\n n -= 2.25 / p;\n l = s * n * n + .9375;\n } else {\n n -= 2.625 / p;\n l = s * n * n + .984375;\n }\n }\n }\n return l;\n };\n window.mina = mina;\n return mina;\n})(typeof eve == \"undefined\" ? function () {} : eve);\n\n// Copyright (c) 2013 - 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar Snap = (function(root) {\nSnap.version = \"0.5.1\";\n/*\\\n * Snap\n [ method ]\n **\n * Creates a drawing surface or wraps existing SVG element.\n **\n - width (number|string) width of surface\n - height (number|string) height of surface\n * or\n - DOM (SVGElement) element to be wrapped into Snap structure\n * or\n - array (array) array of elements (will return set of elements)\n * or\n - query (string) CSS query selector\n = (object) @Element\n\\*/\nfunction Snap(w, h) {\n if (w) {\n if (w.nodeType) {\n return wrap(w);\n }\n if (is(w, \"array\") && Snap.set) {\n return Snap.set.apply(Snap, w);\n }\n if (w instanceof Element) {\n return w;\n }\n if (h == null) {\n try {\n w = glob.doc.querySelector(String(w));\n return wrap(w);\n } catch (e) {\n return null;\n }\n }\n }\n w = w == null ? \"100%\" : w;\n h = h == null ? \"100%\" : h;\n return new Paper(w, h);\n}\nSnap.toString = function () {\n return \"Snap v\" + this.version;\n};\nSnap._ = {};\nvar glob = {\n win: root.window,\n doc: root.window.document\n};\nSnap._.glob = glob;\nvar has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n toInt = parseInt,\n math = Math,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n pow = math.pow,\n PI = math.PI,\n round = math.round,\n E = \"\",\n S = \" \",\n objectToString = Object.prototype.toString,\n ISURL = /^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,\n colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i,\n bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n separator = Snap._.separator = /[,\\s]+/,\n whitespace = /[\\s]/g,\n commaSpaces = /[\\s]*,[\\s]*/,\n hsrg = {hs: 1, rg: 1},\n pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n tCommand = /([rstm])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\s]*,?[\\s]*/ig,\n idgen = 0,\n idprefix = \"S\" + (+new Date).toString(36),\n ID = function (el) {\n return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36);\n },\n xlink = \"http://www.w3.org/1999/xlink\",\n xmlns = \"http://www.w3.org/2000/svg\",\n hub = {},\n /*\\\n * Snap.url\n [ method ]\n **\n * Wraps path into `\"url('')\"`.\n - value (string) path\n = (string) wrapped path\n \\*/\n URL = Snap.url = function (url) {\n return \"url('#\" + url + \"')\";\n };\n\nfunction $(el, attr) {\n if (attr) {\n if (el == \"#text\") {\n el = glob.doc.createTextNode(attr.text || attr[\"#text\"] || \"\");\n }\n if (el == \"#comment\") {\n el = glob.doc.createComment(attr.text || attr[\"#text\"] || \"\");\n }\n if (typeof el == \"string\") {\n el = $(el);\n }\n if (typeof attr == \"string\") {\n if (el.nodeType == 1) {\n if (attr.substring(0, 6) == \"xlink:\") {\n return el.getAttributeNS(xlink, attr.substring(6));\n }\n if (attr.substring(0, 4) == \"xml:\") {\n return el.getAttributeNS(xmlns, attr.substring(4));\n }\n return el.getAttribute(attr);\n } else if (attr == \"text\") {\n return el.nodeValue;\n } else {\n return null;\n }\n }\n if (el.nodeType == 1) {\n for (var key in attr) if (attr[has](key)) {\n var val = Str(attr[key]);\n if (val) {\n if (key.substring(0, 6) == \"xlink:\") {\n el.setAttributeNS(xlink, key.substring(6), val);\n } else if (key.substring(0, 4) == \"xml:\") {\n el.setAttributeNS(xmlns, key.substring(4), val);\n } else {\n el.setAttribute(key, val);\n }\n } else {\n el.removeAttribute(key);\n }\n }\n } else if (\"text\" in attr) {\n el.nodeValue = attr.text;\n }\n } else {\n el = glob.doc.createElementNS(xmlns, el);\n }\n return el;\n}\nSnap._.$ = $;\nSnap._.id = ID;\nfunction getAttrs(el) {\n var attrs = el.attributes,\n name,\n out = {};\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].namespaceURI == xlink) {\n name = \"xlink:\";\n } else {\n name = \"\";\n }\n name += attrs[i].name;\n out[name] = attrs[i].textContent;\n }\n return out;\n}\nfunction is(o, type) {\n type = Str.prototype.toLowerCase.call(type);\n if (type == \"finite\") {\n return isFinite(o);\n }\n if (type == \"array\" &&\n (o instanceof Array || Array.isArray && Array.isArray(o))) {\n return true;\n }\n return type == \"null\" && o === null ||\n type == typeof o && o !== null ||\n type == \"object\" && o === Object(o) ||\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\n}\n/*\\\n * Snap.format\n [ method ]\n **\n * Replaces construction of type `{}` to the corresponding argument\n **\n - token (string) string to format\n - json (object) object which properties are used as a replacement\n = (string) formatted string\n > Usage\n | // this draws a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Snap.format(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n | x: 10,\n | y: 20,\n | dim: {\n | width: 40,\n | height: 50,\n | \"negative width\": -40\n | }\n | }));\n\\*/\nSnap.format = (function () {\n var tokenRegex = /\\{([^\\}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n replacer = function (all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == \"function\" && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + \"\";\n return res;\n };\n return function (str, obj) {\n return Str(str).replace(tokenRegex, function (all, key) {\n return replacer(all, key, obj);\n });\n };\n})();\nfunction clone(obj) {\n if (typeof obj == \"function\" || Object(obj) !== obj) {\n return obj;\n }\n var res = new obj.constructor;\n for (var key in obj) if (obj[has](key)) {\n res[key] = clone(obj[key]);\n }\n return res;\n}\nSnap._.clone = clone;\nfunction repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n}\nfunction cacher(f, scope, postprocessor) {\n function newf() {\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join(\"\\u2400\"),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n if (cache[has](args)) {\n repush(count, args);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f.apply(scope, arg);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n return newf;\n}\nSnap._.cacher = cacher;\nfunction angle(x1, y1, x2, y2, x3, y3) {\n if (x3 == null) {\n var x = x1 - x2,\n y = y1 - y2;\n if (!x && !y) {\n return 0;\n }\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n } else {\n return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3);\n }\n}\nfunction rad(deg) {\n return deg % 360 * PI / 180;\n}\nfunction deg(rad) {\n return rad * 180 / PI % 360;\n}\nfunction x_y() {\n return this.x + S + this.y;\n}\nfunction x_y_w_h() {\n return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n}\n\n/*\\\n * Snap.rad\n [ method ]\n **\n * Transform angle to radians\n - deg (number) angle in degrees\n = (number) angle in radians\n\\*/\nSnap.rad = rad;\n/*\\\n * Snap.deg\n [ method ]\n **\n * Transform angle to degrees\n - rad (number) angle in radians\n = (number) angle in degrees\n\\*/\nSnap.deg = deg;\n/*\\\n * Snap.sin\n [ method ]\n **\n * Equivalent to `Math.sin()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) sin\n\\*/\nSnap.sin = function (angle) {\n return math.sin(Snap.rad(angle));\n};\n/*\\\n * Snap.tan\n [ method ]\n **\n * Equivalent to `Math.tan()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) tan\n\\*/\nSnap.tan = function (angle) {\n return math.tan(Snap.rad(angle));\n};\n/*\\\n * Snap.cos\n [ method ]\n **\n * Equivalent to `Math.cos()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) cos\n\\*/\nSnap.cos = function (angle) {\n return math.cos(Snap.rad(angle));\n};\n/*\\\n * Snap.asin\n [ method ]\n **\n * Equivalent to `Math.asin()` only works with degrees, not radians.\n - num (number) value\n = (number) asin in degrees\n\\*/\nSnap.asin = function (num) {\n return Snap.deg(math.asin(num));\n};\n/*\\\n * Snap.acos\n [ method ]\n **\n * Equivalent to `Math.acos()` only works with degrees, not radians.\n - num (number) value\n = (number) acos in degrees\n\\*/\nSnap.acos = function (num) {\n return Snap.deg(math.acos(num));\n};\n/*\\\n * Snap.atan\n [ method ]\n **\n * Equivalent to `Math.atan()` only works with degrees, not radians.\n - num (number) value\n = (number) atan in degrees\n\\*/\nSnap.atan = function (num) {\n return Snap.deg(math.atan(num));\n};\n/*\\\n * Snap.atan2\n [ method ]\n **\n * Equivalent to `Math.atan2()` only works with degrees, not radians.\n - num (number) value\n = (number) atan2 in degrees\n\\*/\nSnap.atan2 = function (num) {\n return Snap.deg(math.atan2(num));\n};\n/*\\\n * Snap.angle\n [ method ]\n **\n * Returns an angle between two or three points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n - x3 (number) #optional x coord of third point\n - y3 (number) #optional y coord of third point\n = (number) angle in degrees\n\\*/\nSnap.angle = angle;\n/*\\\n * Snap.len\n [ method ]\n **\n * Returns distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len = function (x1, y1, x2, y2) {\n return Math.sqrt(Snap.len2(x1, y1, x2, y2));\n};\n/*\\\n * Snap.len2\n [ method ]\n **\n * Returns squared distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len2 = function (x1, y1, x2, y2) {\n return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n};\n/*\\\n * Snap.closestPoint\n [ method ]\n **\n * Returns closest point to a given one on a given path.\n - path (Element) path element\n - x (number) x coord of a point\n - y (number) y coord of a point\n = (object) in format\n {\n x (number) x coord of the point on the path\n y (number) y coord of the point on the path\n length (number) length of the path to the point\n distance (number) distance from the given point to the path\n }\n\\*/\n// Copied from http://bl.ocks.org/mbostock/8027637\nSnap.closestPoint = function (path, x, y) {\n function distance2(p) {\n var dx = p.x - x,\n dy = p.y - y;\n return dx * dx + dy * dy;\n }\n var pathNode = path.node,\n pathLength = pathNode.getTotalLength(),\n precision = pathLength / pathNode.pathSegList.numberOfItems * .125,\n best,\n bestLength,\n bestDistance = Infinity;\n\n // linear scan for coarse approximation\n for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) {\n if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) {\n best = scan;\n bestLength = scanLength;\n bestDistance = scanDistance;\n }\n }\n\n // binary search for precise estimate\n precision *= .5;\n while (precision > .5) {\n var before,\n after,\n beforeLength,\n afterLength,\n beforeDistance,\n afterDistance;\n if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) {\n best = before;\n bestLength = beforeLength;\n bestDistance = beforeDistance;\n } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) {\n best = after;\n bestLength = afterLength;\n bestDistance = afterDistance;\n } else {\n precision *= .5;\n }\n }\n\n best = {\n x: best.x,\n y: best.y,\n length: bestLength,\n distance: Math.sqrt(bestDistance)\n };\n return best;\n}\n/*\\\n * Snap.is\n [ method ]\n **\n * Handy replacement for the `typeof` operator\n - o (…) any object or primitive\n - type (string) name of the type, e.g., `string`, `function`, `number`, etc.\n = (boolean) `true` if given value is of given type\n\\*/\nSnap.is = is;\n/*\\\n * Snap.snapTo\n [ method ]\n **\n * Snaps given value to given grid\n - values (array|number) given array of values or step of the grid\n - value (number) value to adjust\n - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`.\n = (number) adjusted value\n\\*/\nSnap.snapTo = function (values, value, tolerance) {\n tolerance = is(tolerance, \"finite\") ? tolerance : 10;\n if (is(values, \"array\")) {\n var i = values.length;\n while (i--) if (abs(values[i] - value) <= tolerance) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n if (rem < tolerance) {\n return value - rem;\n }\n if (rem > values - tolerance) {\n return value - rem + values;\n }\n }\n return value;\n};\n// Colour\n/*\\\n * Snap.getRGB\n [ method ]\n **\n * Parses color string as RGB object\n - color (string) color string in one of the following formats:\n #
    \n #
  • Color name (red, green, cornflowerblue, etc)
  • \n #
  • #••• — shortened HTML color: (#000, #fc0, etc.)
  • \n #
  • #•••••• — full length HTML color: (#000000, #bd2300)
  • \n #
  • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
  • \n #
  • rgba(•••, •••, •••, •••) — also with opacity
  • \n #
  • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
  • \n #
  • rgba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
  • \n #
  • hsba(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsb(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
  • \n #
  • hsla(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsl(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsla(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
\n * Note that `%` can be used any time: `rgb(20%, 255, 50%)`.\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) true if string can't be parsed\n o }\n\\*/\nSnap.getRGB = cacher(function (colour) {\n if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n if (colour == \"none\") {\n return {r: -1, g: -1, b: -1, hex: \"none\", toString: rgbtoString};\n }\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n if (!colour) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n var res,\n red,\n green,\n blue,\n opacity,\n t,\n values,\n rgb = colour.match(colourRegExp);\n if (rgb) {\n if (rgb[2]) {\n blue = toInt(rgb[2].substring(5), 16);\n green = toInt(rgb[2].substring(3, 5), 16);\n red = toInt(rgb[2].substring(1, 3), 16);\n }\n if (rgb[3]) {\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\n }\n if (rgb[4]) {\n values = rgb[4].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n }\n if (rgb[5]) {\n values = rgb[5].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsb2rgb(red, green, blue, opacity);\n }\n if (rgb[6]) {\n values = rgb[6].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsl2rgb(red, green, blue, opacity);\n }\n red = mmin(math.round(red), 255);\n green = mmin(math.round(green), 255);\n blue = mmin(math.round(blue), 255);\n opacity = mmin(mmax(opacity, 0), 1);\n rgb = {r: red, g: green, b: blue, toString: rgbtoString};\n rgb.hex = \"#\" + (16777216 | blue | green << 8 | red << 16).toString(16).slice(1);\n rgb.opacity = is(opacity, \"finite\") ? opacity : 1;\n return rgb;\n }\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n}, Snap);\n/*\\\n * Snap.hsb\n [ method ]\n **\n * Converts HSB values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - b (number) value or brightness\n = (string) hex representation of the color\n\\*/\nSnap.hsb = cacher(function (h, s, b) {\n return Snap.hsb2rgb(h, s, b).hex;\n});\n/*\\\n * Snap.hsl\n [ method ]\n **\n * Converts HSL values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (string) hex representation of the color\n\\*/\nSnap.hsl = cacher(function (h, s, l) {\n return Snap.hsl2rgb(h, s, l).hex;\n});\n/*\\\n * Snap.rgb\n [ method ]\n **\n * Converts RGB values to a hex representation of the color\n - r (number) red\n - g (number) green\n - b (number) blue\n = (string) hex representation of the color\n\\*/\nSnap.rgb = cacher(function (r, g, b, o) {\n if (is(o, \"finite\")) {\n var round = math.round;\n return \"rgba(\" + [round(r), round(g), round(b), +o.toFixed(2)] + \")\";\n }\n return \"#\" + (16777216 | b | g << 8 | r << 16).toString(16).slice(1);\n});\nvar toHex = function (color) {\n var i = glob.doc.getElementsByTagName(\"head\")[0] || glob.doc.getElementsByTagName(\"svg\")[0],\n red = \"rgb(255, 0, 0)\";\n toHex = cacher(function (color) {\n if (color.toLowerCase() == \"red\") {\n return red;\n }\n i.style.color = red;\n i.style.color = color;\n var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n return out == red ? null : out;\n });\n return toHex(color);\n},\nhsbtoString = function () {\n return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n},\nhsltoString = function () {\n return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n},\nrgbtoString = function () {\n return this.opacity == 1 || this.opacity == null ?\n this.hex :\n \"rgba(\" + [this.r, this.g, this.b, this.opacity] + \")\";\n},\nprepareRGB = function (r, g, b) {\n if (g == null && is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n b = r.b;\n g = r.g;\n r = r.r;\n }\n if (g == null && is(r, string)) {\n var clr = Snap.getRGB(r);\n r = clr.r;\n g = clr.g;\n b = clr.b;\n }\n if (r > 1 || g > 1 || b > 1) {\n r /= 255;\n g /= 255;\n b /= 255;\n }\n\n return [r, g, b];\n},\npackageRGB = function (r, g, b, o) {\n r = math.round(r * 255);\n g = math.round(g * 255);\n b = math.round(b * 255);\n var rgb = {\n r: r,\n g: g,\n b: b,\n opacity: is(o, \"finite\") ? o : 1,\n hex: Snap.rgb(r, g, b),\n toString: rgbtoString\n };\n is(o, \"finite\") && (rgb.opacity = o);\n return rgb;\n};\n/*\\\n * Snap.color\n [ method ]\n **\n * Parses the color string and returns an object featuring the color's component values\n - clr (string) color string in one of the supported formats (see @Snap.getRGB)\n = (object) Combined RGB/HSB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) `true` if string can't be parsed,\n o h (number) hue,\n o s (number) saturation,\n o v (number) value (brightness),\n o l (number) lightness\n o }\n\\*/\nSnap.color = function (clr) {\n var rgb;\n if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n rgb = Snap.hsb2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n rgb = Snap.hsl2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else {\n if (is(clr, \"string\")) {\n clr = Snap.getRGB(clr);\n }\n if (is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr && !(\"error\" in clr)) {\n rgb = Snap.rgb2hsl(clr);\n clr.h = rgb.h;\n clr.s = rgb.s;\n clr.l = rgb.l;\n rgb = Snap.rgb2hsb(clr);\n clr.v = rgb.b;\n } else {\n clr = {hex: \"none\"};\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n clr.error = 1;\n }\n }\n clr.toString = rgbtoString;\n return clr;\n};\n/*\\\n * Snap.hsb2rgb\n [ method ]\n **\n * Converts HSB values to an RGB object\n - h (number) hue\n - s (number) saturation\n - v (number) value or brightness\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsb2rgb = function (h, s, v, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n v = h.b;\n s = h.s;\n o = h.o;\n h = h.h;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = v * s;\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = v - C;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.hsl2rgb\n [ method ]\n **\n * Converts HSL values to an RGB object\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsl2rgb = function (h, s, l, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n l = h.l;\n s = h.s;\n h = h.h;\n }\n if (h > 1 || s > 1 || l > 1) {\n h /= 360;\n s /= 100;\n l /= 100;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = 2 * s * (l < .5 ? l : 1 - l);\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = l - C / 2;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.rgb2hsb\n [ method ]\n **\n * Converts RGB values to an HSB object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSB object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o b (number) brightness\n o }\n\\*/\nSnap.rgb2hsb = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, V, C;\n V = mmax(r, g, b);\n C = V - mmin(r, g, b);\n H = C == 0 ? null :\n V == r ? (g - b) / C :\n V == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n S = C == 0 ? 0 : C / V;\n return {h: H, s: S, b: V, toString: hsbtoString};\n};\n/*\\\n * Snap.rgb2hsl\n [ method ]\n **\n * Converts RGB values to an HSL object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSL object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o l (number) luminosity\n o }\n\\*/\nSnap.rgb2hsl = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, L, M, m, C;\n M = mmax(r, g, b);\n m = mmin(r, g, b);\n C = M - m;\n H = C == 0 ? null :\n M == r ? (g - b) / C :\n M == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n L = (M + m) / 2;\n S = C == 0 ? 0 :\n L < .5 ? C / (2 * L) :\n C / (2 - 2 * L);\n return {h: H, s: S, l: L, toString: hsltoString};\n};\n\n// Transformations\n/*\\\n * Snap.parsePathString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of arrays of path segments\n - pathString (string|array) path string or array of segments (in the last case it is returned straight away)\n = (array) array of segments\n\\*/\nSnap.parsePathString = function (pathString) {\n if (!pathString) {\n return null;\n }\n var pth = Snap.path(pathString);\n if (pth.arr) {\n return Snap.path.clone(pth.arr);\n }\n\n var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0},\n data = [];\n if (is(pathString, \"array\") && is(pathString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(pathString);\n }\n if (!data.length) {\n Str(pathString).replace(pathCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n if (name == \"m\" && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = \"l\";\n b = b == \"m\" ? \"l\" : \"L\";\n }\n if (name == \"o\" && params.length == 1) {\n data.push([b, params[0]]);\n }\n if (name == \"r\") {\n data.push([b].concat(params));\n } else while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n data.toString = Snap.path.toString;\n pth.arr = Snap.path.clone(data);\n return data;\n};\n/*\\\n * Snap.parseTransformString\n [ method ]\n **\n * Utility method\n **\n * Parses given transform string into an array of transformations\n - TString (string|array) transform string or array of transformations (in the last case it is returned straight away)\n = (array) array of transformations\n\\*/\nvar parseTransformString = Snap.parseTransformString = function (TString) {\n if (!TString) {\n return null;\n }\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n data = [];\n if (is(TString, \"array\") && is(TString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(TString);\n }\n if (!data.length) {\n Str(TString).replace(tCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n data.push([b].concat(params));\n });\n }\n data.toString = Snap.path.toString;\n return data;\n};\nfunction svgTransform2string(tstr) {\n var res = [];\n tstr = tstr.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g, function (all, name, params) {\n params = params.split(/\\s*,\\s*|\\s+/);\n if (name == \"rotate\" && params.length == 1) {\n params.push(0, 0);\n }\n if (name == \"scale\") {\n if (params.length > 2) {\n params = params.slice(0, 2);\n } else if (params.length == 2) {\n params.push(0, 0);\n }\n if (params.length == 1) {\n params.push(params[0], 0, 0);\n }\n }\n if (name == \"skewX\") {\n res.push([\"m\", 1, 0, math.tan(rad(params[0])), 1, 0, 0]);\n } else if (name == \"skewY\") {\n res.push([\"m\", 1, math.tan(rad(params[0])), 0, 1, 0, 0]);\n } else {\n res.push([name.charAt(0)].concat(params));\n }\n return all;\n });\n return res;\n}\nSnap._.svgTransform2string = svgTransform2string;\nSnap._.rgTransform = /^[a-z][\\s]*-?\\.?\\d/i;\nfunction transform2matrix(tstr, bbox) {\n var tdata = parseTransformString(tstr),\n m = new Snap.Matrix;\n if (tdata) {\n for (var i = 0, ii = tdata.length; i < ii; i++) {\n var t = tdata[i],\n tlen = t.length,\n command = Str(t[0]).toLowerCase(),\n absolute = t[0] != command,\n inver = absolute ? m.invert() : 0,\n x1,\n y1,\n x2,\n y2,\n bb;\n if (command == \"t\" && tlen == 2){\n m.translate(t[1], 0);\n } else if (command == \"t\" && tlen == 3) {\n if (absolute) {\n x1 = inver.x(0, 0);\n y1 = inver.y(0, 0);\n x2 = inver.x(t[1], t[2]);\n y2 = inver.y(t[1], t[2]);\n m.translate(x2 - x1, y2 - y1);\n } else {\n m.translate(t[1], t[2]);\n }\n } else if (command == \"r\") {\n if (tlen == 2) {\n bb = bb || bbox;\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.rotate(t[1], x2, y2);\n } else {\n m.rotate(t[1], t[2], t[3]);\n }\n }\n } else if (command == \"s\") {\n if (tlen == 2 || tlen == 3) {\n bb = bb || bbox;\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.scale(t[1], t[1], x2, y2);\n } else {\n m.scale(t[1], t[1], t[2], t[3]);\n }\n } else if (tlen == 5) {\n if (absolute) {\n x2 = inver.x(t[3], t[4]);\n y2 = inver.y(t[3], t[4]);\n m.scale(t[1], t[2], x2, y2);\n } else {\n m.scale(t[1], t[2], t[3], t[4]);\n }\n }\n } else if (command == \"m\" && tlen == 7) {\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n }\n }\n }\n return m;\n}\nSnap._.transform2matrix = transform2matrix;\nSnap._unit2px = unit2px;\nvar contains = glob.doc.contains || glob.doc.compareDocumentPosition ?\n function (a, b) {\n var adown = a.nodeType == 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a == bup || !!(bup && bup.nodeType == 1 && (\n adown.contains ?\n adown.contains(bup) :\n a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\n ));\n } :\n function (a, b) {\n if (b) {\n while (b) {\n b = b.parentNode;\n if (b == a) {\n return true;\n }\n }\n }\n return false;\n };\nfunction getSomeDefs(el) {\n var p = el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) ||\n el.node.parentNode && wrap(el.node.parentNode) ||\n Snap.select(\"svg\") ||\n Snap(0, 0),\n pdefs = p.select(\"defs\"),\n defs = pdefs == null ? false : pdefs.node;\n if (!defs) {\n defs = make(\"defs\", p.node).node;\n }\n return defs;\n}\nfunction getSomeSVG(el) {\n return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select(\"svg\");\n}\nSnap._.getSomeDefs = getSomeDefs;\nSnap._.getSomeSVG = getSomeSVG;\nfunction unit2px(el, name, value) {\n var svg = getSomeSVG(el).node,\n out = {},\n mgr = svg.querySelector(\".svg---mgr\");\n if (!mgr) {\n mgr = $(\"rect\");\n $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, \"class\": \"svg---mgr\", fill: \"none\"});\n svg.appendChild(mgr);\n }\n function getW(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {width: val});\n try {\n return mgr.getBBox().width;\n } catch (e) {\n return 0;\n }\n }\n function getH(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {height: val});\n try {\n return mgr.getBBox().height;\n } catch (e) {\n return 0;\n }\n }\n function set(nam, f) {\n if (name == null) {\n out[nam] = f(el.attr(nam) || 0);\n } else if (nam == name) {\n out = f(value == null ? el.attr(nam) || 0 : value);\n }\n }\n switch (el.type) {\n case \"rect\":\n set(\"rx\", getW);\n set(\"ry\", getH);\n case \"image\":\n set(\"width\", getW);\n set(\"height\", getH);\n case \"text\":\n set(\"x\", getW);\n set(\"y\", getH);\n break;\n case \"circle\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"r\", getW);\n break;\n case \"ellipse\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"rx\", getW);\n set(\"ry\", getH);\n break;\n case \"line\":\n set(\"x1\", getW);\n set(\"x2\", getW);\n set(\"y1\", getH);\n set(\"y2\", getH);\n break;\n case \"marker\":\n set(\"refX\", getW);\n set(\"markerWidth\", getW);\n set(\"refY\", getH);\n set(\"markerHeight\", getH);\n break;\n case \"radialGradient\":\n set(\"fx\", getW);\n set(\"fy\", getH);\n break;\n case \"tspan\":\n set(\"dx\", getW);\n set(\"dy\", getH);\n break;\n default:\n set(name, getW);\n }\n svg.removeChild(mgr);\n return out;\n}\n/*\\\n * Snap.select\n [ method ]\n **\n * Wraps a DOM element specified by CSS selector as @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.select = function (query) {\n query = Str(query).replace(/([^\\\\]):/g, \"$1\\\\:\");\n return wrap(glob.doc.querySelector(query));\n};\n/*\\\n * Snap.selectAll\n [ method ]\n **\n * Wraps DOM elements specified by CSS selector as set or array of @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.selectAll = function (query) {\n var nodelist = glob.doc.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n};\n\nfunction add2group(list) {\n if (!is(list, \"array\")) {\n list = Array.prototype.slice.call(arguments, 0);\n }\n var i = 0,\n j = 0,\n node = this.node;\n while (this[i]) delete this[i++];\n for (i = 0; i < list.length; i++) {\n if (list[i].type == \"set\") {\n list[i].forEach(function (el) {\n node.appendChild(el.node);\n });\n } else {\n node.appendChild(list[i].node);\n }\n }\n var children = node.childNodes;\n for (i = 0; i < children.length; i++) {\n this[j++] = wrap(children[i]);\n }\n return this;\n}\n// Hub garbage collector every 10s\nsetInterval(function () {\n for (var key in hub) if (hub[has](key)) {\n var el = hub[key],\n node = el.node;\n if (el.type != \"svg\" && !node.ownerSVGElement || el.type == \"svg\" && (!node.parentNode || \"ownerSVGElement\" in node.parentNode && !node.ownerSVGElement)) {\n delete hub[key];\n }\n }\n}, 1e4);\nfunction Element(el) {\n if (el.snap in hub) {\n return hub[el.snap];\n }\n var svg;\n try {\n svg = el.ownerSVGElement;\n } catch(e) {}\n /*\\\n * Element.node\n [ property (object) ]\n **\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n > Usage\n | // draw a circle at coordinate 10,10 with radius of 10\n | var c = paper.circle(10, 10, 10);\n | c.node.onclick = function () {\n | c.attr(\"fill\", \"red\");\n | };\n \\*/\n this.node = el;\n if (svg) {\n this.paper = new Paper(svg);\n }\n /*\\\n * Element.type\n [ property (string) ]\n **\n * SVG tag name of the given element.\n \\*/\n this.type = el.tagName || el.nodeName;\n var id = this.id = ID(this);\n this.anims = {};\n this._ = {\n transform: []\n };\n el.snap = id;\n hub[id] = this;\n if (this.type == \"g\") {\n this.add = add2group;\n }\n if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) {\n for (var method in Paper.prototype) if (Paper.prototype[has](method)) {\n this[method] = Paper.prototype[method];\n }\n }\n}\n /*\\\n * Element.attr\n [ method ]\n **\n * Gets or sets given attributes of the element.\n **\n - params (object) contains key-value pairs of attributes you want to set\n * or\n - param (string) name of the attribute\n = (Element) the current element\n * or\n = (string) value of attribute\n > Usage\n | el.attr({\n | fill: \"#fc0\",\n | stroke: \"#000\",\n | strokeWidth: 2, // CamelCase...\n | \"fill-opacity\": 0.5, // or dash-separated names\n | width: \"*=2\" // prefixed values\n | });\n | console.log(el.attr(\"fill\")); // #fc0\n * Prefixed values in format `\"+=10\"` supported. All four operations\n * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+`\n * and `-`: `\"+=2em\"`.\n \\*/\n Element.prototype.attr = function (params, value) {\n var el = this,\n node = el.node;\n if (!params) {\n if (node.nodeType != 1) {\n return {\n text: node.nodeValue\n };\n }\n var attr = node.attributes,\n out = {};\n for (var i = 0, ii = attr.length; i < ii; i++) {\n out[attr[i].nodeName] = attr[i].nodeValue;\n }\n return out;\n }\n if (is(params, \"string\")) {\n if (arguments.length > 1) {\n var json = {};\n json[params] = value;\n params = json;\n } else {\n return eve(\"snap.util.getattr.\" + params, el).firstDefined();\n }\n }\n for (var att in params) {\n if (params[has](att)) {\n eve(\"snap.util.attr.\" + att, el, params[att]);\n }\n }\n return el;\n };\n/*\\\n * Snap.parse\n [ method ]\n **\n * Parses SVG fragment and converts it into a @Fragment\n **\n - svg (string) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.parse = function (svg) {\n var f = glob.doc.createDocumentFragment(),\n full = true,\n div = glob.doc.createElement(\"div\");\n svg = Str(svg);\n if (!svg.match(/^\\s*<\\s*svg(?:\\s|>)/)) {\n svg = \"\" + svg + \"\";\n full = false;\n }\n div.innerHTML = svg;\n svg = div.getElementsByTagName(\"svg\")[0];\n if (svg) {\n if (full) {\n f = svg;\n } else {\n while (svg.firstChild) {\n f.appendChild(svg.firstChild);\n }\n }\n }\n return new Fragment(f);\n};\nfunction Fragment(frag) {\n this.node = frag;\n}\n/*\\\n * Snap.fragment\n [ method ]\n **\n * Creates a DOM fragment from a given list of elements or strings\n **\n - varargs (…) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.fragment = function () {\n var args = Array.prototype.slice.call(arguments, 0),\n f = glob.doc.createDocumentFragment();\n for (var i = 0, ii = args.length; i < ii; i++) {\n var item = args[i];\n if (item.node && item.node.nodeType) {\n f.appendChild(item.node);\n }\n if (item.nodeType) {\n f.appendChild(item);\n }\n if (typeof item == \"string\") {\n f.appendChild(Snap.parse(item).node);\n }\n }\n return new Fragment(f);\n};\n\nfunction make(name, parent) {\n var res = $(name);\n parent.appendChild(res);\n var el = wrap(res);\n return el;\n}\nfunction Paper(w, h) {\n var res,\n desc,\n defs,\n proto = Paper.prototype;\n if (w && w.tagName && w.tagName.toLowerCase() == \"svg\") {\n if (w.snap in hub) {\n return hub[w.snap];\n }\n var doc = w.ownerDocument;\n res = new Element(w);\n desc = w.getElementsByTagName(\"desc\")[0];\n defs = w.getElementsByTagName(\"defs\")[0];\n if (!desc) {\n desc = $(\"desc\");\n desc.appendChild(doc.createTextNode(\"Created with Snap\"));\n res.node.appendChild(desc);\n }\n if (!defs) {\n defs = $(\"defs\");\n res.node.appendChild(defs);\n }\n res.defs = defs;\n for (var key in proto) if (proto[has](key)) {\n res[key] = proto[key];\n }\n res.paper = res.root = res;\n } else {\n res = make(\"svg\", glob.doc.body);\n $(res.node, {\n height: h,\n version: 1.1,\n width: w,\n xmlns: xmlns\n });\n }\n return res;\n}\nfunction wrap(dom) {\n if (!dom) {\n return dom;\n }\n if (dom instanceof Element || dom instanceof Fragment) {\n return dom;\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"svg\") {\n return new Paper(dom);\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"object\" && dom.type == \"image/svg+xml\") {\n return new Paper(dom.contentDocument.getElementsByTagName(\"svg\")[0]);\n }\n return new Element(dom);\n}\n\nSnap._.make = make;\nSnap._.wrap = wrap;\n/*\\\n * Paper.el\n [ method ]\n **\n * Creates an element on paper with a given name and no attributes\n **\n - name (string) tag name\n - attr (object) attributes\n = (Element) the current element\n > Usage\n | var c = paper.circle(10, 10, 10); // is the same as...\n | var c = paper.el(\"circle\").attr({\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n | // and the same as\n | var c = paper.el(\"circle\", {\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n\\*/\nPaper.prototype.el = function (name, attr) {\n var el = make(name, this.node);\n attr && el.attr(attr);\n return el;\n};\n/*\\\n * Element.children\n [ method ]\n **\n * Returns array of all the children of the element.\n = (array) array of Elements\n\\*/\nElement.prototype.children = function () {\n var out = [],\n ch = this.node.childNodes;\n for (var i = 0, ii = ch.length; i < ii; i++) {\n out[i] = Snap(ch[i]);\n }\n return out;\n};\nfunction jsonFiller(root, o) {\n for (var i = 0, ii = root.length; i < ii; i++) {\n var item = {\n type: root[i].type,\n attr: root[i].attr()\n },\n children = root[i].children();\n o.push(item);\n if (children.length) {\n jsonFiller(children, item.childNodes = []);\n }\n }\n}\n/*\\\n * Element.toJSON\n [ method ]\n **\n * Returns object representation of the given element and all its children.\n = (object) in format\n o {\n o type (string) this.type,\n o attr (object) attributes map,\n o childNodes (array) optional array of children in the same format\n o }\n\\*/\nElement.prototype.toJSON = function () {\n var out = [];\n jsonFiller([this], out);\n return out[0];\n};\n// default\neve.on(\"snap.util.getattr\", function () {\n var att = eve.nt();\n att = att.substring(att.lastIndexOf(\".\") + 1);\n var css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css);\n } else {\n return $(this.node, att);\n }\n});\nvar cssAttr = {\n \"alignment-baseline\": 0,\n \"baseline-shift\": 0,\n \"clip\": 0,\n \"clip-path\": 0,\n \"clip-rule\": 0,\n \"color\": 0,\n \"color-interpolation\": 0,\n \"color-interpolation-filters\": 0,\n \"color-profile\": 0,\n \"color-rendering\": 0,\n \"cursor\": 0,\n \"direction\": 0,\n \"display\": 0,\n \"dominant-baseline\": 0,\n \"enable-background\": 0,\n \"fill\": 0,\n \"fill-opacity\": 0,\n \"fill-rule\": 0,\n \"filter\": 0,\n \"flood-color\": 0,\n \"flood-opacity\": 0,\n \"font\": 0,\n \"font-family\": 0,\n \"font-size\": 0,\n \"font-size-adjust\": 0,\n \"font-stretch\": 0,\n \"font-style\": 0,\n \"font-variant\": 0,\n \"font-weight\": 0,\n \"glyph-orientation-horizontal\": 0,\n \"glyph-orientation-vertical\": 0,\n \"image-rendering\": 0,\n \"kerning\": 0,\n \"letter-spacing\": 0,\n \"lighting-color\": 0,\n \"marker\": 0,\n \"marker-end\": 0,\n \"marker-mid\": 0,\n \"marker-start\": 0,\n \"mask\": 0,\n \"opacity\": 0,\n \"overflow\": 0,\n \"pointer-events\": 0,\n \"shape-rendering\": 0,\n \"stop-color\": 0,\n \"stop-opacity\": 0,\n \"stroke\": 0,\n \"stroke-dasharray\": 0,\n \"stroke-dashoffset\": 0,\n \"stroke-linecap\": 0,\n \"stroke-linejoin\": 0,\n \"stroke-miterlimit\": 0,\n \"stroke-opacity\": 0,\n \"stroke-width\": 0,\n \"text-anchor\": 0,\n \"text-decoration\": 0,\n \"text-rendering\": 0,\n \"unicode-bidi\": 0,\n \"visibility\": 0,\n \"word-spacing\": 0,\n \"writing-mode\": 0\n};\n\neve.on(\"snap.util.attr\", function (value) {\n var att = eve.nt(),\n attr = {};\n att = att.substring(att.lastIndexOf(\".\") + 1);\n attr[att] = value;\n var style = att.replace(/-(\\w)/gi, function (all, letter) {\n return letter.toUpperCase();\n }),\n css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n this.node.style[style] = value == null ? E : value;\n } else {\n $(this.node, attr);\n }\n});\n(function (proto) {}(Paper.prototype));\n\n// simple ajax\n/*\\\n * Snap.ajax\n [ method ]\n **\n * Simple implementation of Ajax\n **\n - url (string) URL\n - postData (object|string) data for post request\n - callback (function) callback\n - scope (object) #optional scope of callback\n * or\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n = (XMLHttpRequest) the XMLHttpRequest object, just in case\n\\*/\nSnap.ajax = function (url, postData, callback, scope){\n var req = new XMLHttpRequest,\n id = ID();\n if (req) {\n if (is(postData, \"function\")) {\n scope = callback;\n callback = postData;\n postData = null;\n } else if (is(postData, \"object\")) {\n var pd = [];\n for (var key in postData) if (postData.hasOwnProperty(key)) {\n pd.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(postData[key]));\n }\n postData = pd.join(\"&\");\n }\n req.open(postData ? \"POST\" : \"GET\", url, true);\n if (postData) {\n req.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n req.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n }\n if (callback) {\n eve.once(\"snap.ajax.\" + id + \".0\", callback);\n eve.once(\"snap.ajax.\" + id + \".200\", callback);\n eve.once(\"snap.ajax.\" + id + \".304\", callback);\n }\n req.onreadystatechange = function() {\n if (req.readyState != 4) return;\n eve(\"snap.ajax.\" + id + \".\" + req.status, scope, req);\n };\n if (req.readyState == 4) {\n return req;\n }\n req.send(postData);\n return req;\n }\n};\n/*\\\n * Snap.load\n [ method ]\n **\n * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX)\n **\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n\\*/\nSnap.load = function (url, callback, scope) {\n Snap.ajax(url, function (req) {\n var f = Snap.parse(req.responseText);\n scope ? callback.call(scope, f) : callback(f);\n });\n};\nvar getOffset = function (elem) {\n var box = elem.getBoundingClientRect(),\n doc = elem.ownerDocument,\n body = doc.body,\n docElem = doc.documentElement,\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n return {\n y: top,\n x: left\n };\n};\n/*\\\n * Snap.getElementByPoint\n [ method ]\n **\n * Returns you topmost element under given point.\n **\n = (object) Snap element object\n - x (number) x coordinate from the top left corner of the window\n - y (number) y coordinate from the top left corner of the window\n > Usage\n | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n\\*/\nSnap.getElementByPoint = function (x, y) {\n var paper = this,\n svg = paper.canvas,\n target = glob.doc.elementFromPoint(x, y);\n if (glob.win.opera && target.tagName == \"svg\") {\n var so = getOffset(target),\n sr = target.createSVGRect();\n sr.x = x - so.x;\n sr.y = y - so.y;\n sr.width = sr.height = 1;\n var hits = target.getIntersectionList(sr, null);\n if (hits.length) {\n target = hits[hits.length - 1];\n }\n }\n if (!target) {\n return null;\n }\n return wrap(target);\n};\n/*\\\n * Snap.plugin\n [ method ]\n **\n * Let you write plugins. You pass in a function with five arguments, like this:\n | Snap.plugin(function (Snap, Element, Paper, global, Fragment) {\n | Snap.newmethod = function () {};\n | Element.prototype.newmethod = function () {};\n | Paper.prototype.newmethod = function () {};\n | });\n * Inside the function you have access to all main objects (and their\n * prototypes). This allow you to extend anything you want.\n **\n - f (function) your plugin body\n\\*/\nSnap.plugin = function (f) {\n f(Snap, Element, Paper, glob, Fragment);\n};\nglob.win.Snap = Snap;\nreturn Snap;\n}(window || this));\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n unit2px = Snap._unit2px,\n $ = Snap._.$,\n make = Snap._.make,\n getSomeDefs = Snap._.getSomeDefs,\n has = \"hasOwnProperty\",\n wrap = Snap._.wrap;\n /*\\\n * Element.getBBox\n [ method ]\n **\n * Returns the bounding box descriptor for the given element\n **\n = (object) bounding box descriptor:\n o {\n o cx: (number) x of the center,\n o cy: (number) x of the center,\n o h: (number) height,\n o height: (number) height,\n o path: (string) path command for the box,\n o r0: (number) radius of a circle that fully encloses the box,\n o r1: (number) radius of the smallest circle that can be enclosed,\n o r2: (number) radius of the largest circle that can be enclosed,\n o vb: (string) box as a viewbox command,\n o w: (number) width,\n o width: (number) width,\n o x2: (number) x of the right side,\n o x: (number) x of the left side,\n o y2: (number) y of the bottom edge,\n o y: (number) y of the top edge\n o }\n \\*/\n elproto.getBBox = function (isWithoutTransform) {\n if (this.type == \"tspan\") {\n return Snap._.box(this.node.getClientRects().item(0));\n }\n if (!Snap.Matrix || !Snap.path) {\n return this.node.getBBox();\n }\n var el = this,\n m = new Snap.Matrix;\n if (el.removed) {\n return Snap._.box();\n }\n while (el.type == \"use\") {\n if (!isWithoutTransform) {\n m = m.add(el.transform().localMatrix.translate(el.attr(\"x\") || 0, el.attr(\"y\") || 0));\n }\n if (el.original) {\n el = el.original;\n } else {\n var href = el.attr(\"xlink:href\");\n el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf(\"#\") + 1));\n }\n }\n var _ = el._,\n pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt;\n try {\n if (isWithoutTransform) {\n _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox());\n return Snap._.box(_.bboxwt);\n } else {\n el.realPath = pathfinder(el);\n el.matrix = el.transform().localMatrix;\n _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix)));\n return Snap._.box(_.bbox);\n }\n } catch (e) {\n // Firefox doesn’t give you bbox of hidden element\n return Snap._.box();\n }\n };\n var propString = function () {\n return this.string;\n };\n function extractTransform(el, tstr) {\n if (tstr == null) {\n var doReturn = true;\n if (el.type == \"linearGradient\" || el.type == \"radialGradient\") {\n tstr = el.node.getAttribute(\"gradientTransform\");\n } else if (el.type == \"pattern\") {\n tstr = el.node.getAttribute(\"patternTransform\");\n } else {\n tstr = el.node.getAttribute(\"transform\");\n }\n if (!tstr) {\n return new Snap.Matrix;\n }\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n if (!Snap._.rgTransform.test(tstr)) {\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || \"\");\n }\n if (is(tstr, \"array\")) {\n tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr);\n }\n el._.transform = tstr;\n }\n var m = Snap._.transform2matrix(tstr, el.getBBox(1));\n if (doReturn) {\n return m;\n } else {\n el.matrix = m;\n }\n }\n /*\\\n * Element.transform\n [ method ]\n **\n * Gets or sets transformation of the element\n **\n - tstr (string) transform string in Snap or SVG format\n = (Element) the current element\n * or\n = (object) transformation descriptor:\n o {\n o string (string) transform string,\n o globalMatrix (Matrix) matrix of all transformations applied to element or its parents,\n o localMatrix (Matrix) matrix of transformations applied only to the element,\n o diffMatrix (Matrix) matrix of difference between global and local transformations,\n o global (string) global transformation as string,\n o local (string) local transformation as string,\n o toString (function) returns `string` property\n o }\n \\*/\n elproto.transform = function (tstr) {\n var _ = this._;\n if (tstr == null) {\n var papa = this,\n global = new Snap.Matrix(this.node.getCTM()),\n local = extractTransform(this),\n ms = [local],\n m = new Snap.Matrix,\n i,\n localString = local.toTransformString(),\n string = Str(local) == Str(this.matrix) ?\n Str(_.transform) : localString;\n while (papa.type != \"svg\" && (papa = papa.parent())) {\n ms.push(extractTransform(papa));\n }\n i = ms.length;\n while (i--) {\n m.add(ms[i]);\n }\n return {\n string: string,\n globalMatrix: global,\n totalMatrix: m,\n localMatrix: local,\n diffMatrix: global.clone().add(local.invert()),\n global: global.toTransformString(),\n total: m.toTransformString(),\n local: localString,\n toString: propString\n };\n }\n if (tstr instanceof Snap.Matrix) {\n this.matrix = tstr;\n this._.transform = tstr.toTransformString();\n } else {\n extractTransform(this, tstr);\n }\n\n if (this.node) {\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\") {\n $(this.node, {gradientTransform: this.matrix});\n } else if (this.type == \"pattern\") {\n $(this.node, {patternTransform: this.matrix});\n } else {\n $(this.node, {transform: this.matrix});\n }\n }\n\n return this;\n };\n /*\\\n * Element.parent\n [ method ]\n **\n * Returns the element's parent\n **\n = (Element) the parent element\n \\*/\n elproto.parent = function () {\n return wrap(this.node.parentNode);\n };\n /*\\\n * Element.append\n [ method ]\n **\n * Appends the given element to current one\n **\n - el (Element|Set) element to append\n = (Element) the parent element\n \\*/\n /*\\\n * Element.add\n [ method ]\n **\n * See @Element.append\n \\*/\n elproto.append = elproto.add = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n it.add(el);\n });\n return this;\n }\n el = wrap(el);\n this.node.appendChild(el.node);\n el.paper = this.paper;\n }\n return this;\n };\n /*\\\n * Element.appendTo\n [ method ]\n **\n * Appends the current element to the given one\n **\n - el (Element) parent element to append to\n = (Element) the child element\n \\*/\n elproto.appendTo = function (el) {\n if (el) {\n el = wrap(el);\n el.append(this);\n }\n return this;\n };\n /*\\\n * Element.prepend\n [ method ]\n **\n * Prepends the given element to the current one\n **\n - el (Element) element to prepend\n = (Element) the parent element\n \\*/\n elproto.prepend = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this,\n first;\n el.forEach(function (el) {\n if (first) {\n first.after(el);\n } else {\n it.prepend(el);\n }\n first = el;\n });\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.insertBefore(el.node, this.node.firstChild);\n this.add && this.add();\n el.paper = this.paper;\n this.parent() && this.parent().add();\n parent && parent.add();\n }\n return this;\n };\n /*\\\n * Element.prependTo\n [ method ]\n **\n * Prepends the current element to the given one\n **\n - el (Element) parent element to prepend to\n = (Element) the child element\n \\*/\n elproto.prependTo = function (el) {\n el = wrap(el);\n el.prepend(this);\n return this;\n };\n /*\\\n * Element.before\n [ method ]\n **\n * Inserts given element before the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.before = function (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n var parent = el.parent();\n it.node.parentNode.insertBefore(el.node, it.node);\n parent && parent.add();\n });\n this.parent().add();\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.parentNode.insertBefore(el.node, this.node);\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.after\n [ method ]\n **\n * Inserts given element after the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.after = function (el) {\n el = wrap(el);\n var parent = el.parent();\n if (this.node.nextSibling) {\n this.node.parentNode.insertBefore(el.node, this.node.nextSibling);\n } else {\n this.node.parentNode.appendChild(el.node);\n }\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.insertBefore\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertBefore = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.insertAfter\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertAfter = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node.nextSibling);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.remove\n [ method ]\n **\n * Removes element from the DOM\n = (Element) the detached element\n \\*/\n elproto.remove = function () {\n var parent = this.parent();\n this.node.parentNode && this.node.parentNode.removeChild(this.node);\n delete this.paper;\n this.removed = true;\n parent && parent.add();\n return this;\n };\n /*\\\n * Element.select\n [ method ]\n **\n * Gathers the nested @Element matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Element) result of query selection\n \\*/\n elproto.select = function (query) {\n return wrap(this.node.querySelector(query));\n };\n /*\\\n * Element.selectAll\n [ method ]\n **\n * Gathers nested @Element objects matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Set|array) result of query selection\n \\*/\n elproto.selectAll = function (query) {\n var nodelist = this.node.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n };\n /*\\\n * Element.asPX\n [ method ]\n **\n * Returns given attribute of the element as a `px` value (not %, em, etc.)\n **\n - attr (string) attribute name\n - value (string) #optional attribute value\n = (Element) result of query selection\n \\*/\n elproto.asPX = function (attr, value) {\n if (value == null) {\n value = this.attr(attr);\n }\n return +unit2px(this, attr, value);\n };\n // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned instantiates. It's a part of SVG with which ordinary web developers may be least familiar.\n /*\\\n * Element.use\n [ method ]\n **\n * Creates a `` element linked to the current element\n **\n = (Element) the `` element\n \\*/\n elproto.use = function () {\n var use,\n id = this.node.id;\n if (!id) {\n id = this.id;\n $(this.node, {\n id: id\n });\n }\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\" ||\n this.type == \"pattern\") {\n use = make(this.type, this.node.parentNode);\n } else {\n use = make(\"use\", this.node.parentNode);\n }\n $(use.node, {\n \"xlink:href\": \"#\" + id\n });\n use.original = this;\n return use;\n };\n function fixids(el) {\n var els = el.selectAll(\"*\"),\n it,\n url = /^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/,\n ids = [],\n uses = {};\n function urltest(it, name) {\n var val = $(it.node, name);\n val = val && val.match(url);\n val = val && val[2];\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n var attr = {};\n attr[name] = Snap.url(id);\n $(it.node, attr);\n });\n }\n }\n function linktest(it) {\n var val = $(it.node, \"xlink:href\");\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n it.attr(\"xlink:href\", \"#\" + id);\n });\n }\n }\n for (var i = 0, ii = els.length; i < ii; i++) {\n it = els[i];\n urltest(it, \"fill\");\n urltest(it, \"stroke\");\n urltest(it, \"filter\");\n urltest(it, \"mask\");\n urltest(it, \"clip-path\");\n linktest(it);\n var oldid = $(it.node, \"id\");\n if (oldid) {\n $(it.node, {id: it.id});\n ids.push({\n old: oldid,\n id: it.id\n });\n }\n }\n for (i = 0, ii = ids.length; i < ii; i++) {\n var fs = uses[ids[i].old];\n if (fs) {\n for (var j = 0, jj = fs.length; j < jj; j++) {\n fs[j](ids[i].id);\n }\n }\n }\n }\n /*\\\n * Element.clone\n [ method ]\n **\n * Creates a clone of the element and inserts it after the element\n **\n = (Element) the clone\n \\*/\n elproto.clone = function () {\n var clone = wrap(this.node.cloneNode(true));\n if ($(clone.node, \"id\")) {\n $(clone.node, {id: clone.id});\n }\n fixids(clone);\n clone.insertAfter(this);\n return clone;\n };\n /*\\\n * Element.toDefs\n [ method ]\n **\n * Moves element to the shared `` area\n **\n = (Element) the element\n \\*/\n elproto.toDefs = function () {\n var defs = getSomeDefs(this);\n defs.appendChild(this.node);\n return this;\n };\n /*\\\n * Element.toPattern\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a pattern you have to specify the pattern rect:\n - x (string|number)\n - y (string|number)\n - width (string|number)\n - height (string|number)\n = (Element) the `` element\n * You can use pattern later on as an argument for `fill` attribute:\n | var p = paper.path(\"M10-5-10,15M15,0,0,15M0-5-20,15\").attr({\n | fill: \"none\",\n | stroke: \"#bada55\",\n | strokeWidth: 5\n | }).pattern(0, 0, 10, 10),\n | c = paper.circle(200, 200, 100);\n | c.attr({\n | fill: p\n | });\n \\*/\n elproto.pattern = elproto.toPattern = function (x, y, width, height) {\n var p = make(\"pattern\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n $(p.node, {\n x: x,\n y: y,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\",\n id: p.id,\n viewBox: [x, y, width, height].join(\" \")\n });\n p.node.appendChild(this.node);\n return p;\n };\n// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path.\n// SIERRA Element.marker(): I suggest the method should accept default reference point values. Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where? Couldn't they also be assigned default values?\n /*\\\n * Element.marker\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a marker you have to specify the bounding rect and reference point:\n - x (number)\n - y (number)\n - width (number)\n - height (number)\n - refX (number)\n - refY (number)\n = (Element) the `` element\n * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end.\n \\*/\n // TODO add usage for markers\n elproto.marker = function (x, y, width, height, refX, refY) {\n var p = make(\"marker\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n refX = x.refX || x.cx;\n refY = x.refY || x.cy;\n x = x.x;\n }\n $(p.node, {\n viewBox: [x, y, width, height].join(\" \"),\n markerWidth: width,\n markerHeight: height,\n orient: \"auto\",\n refX: refX || 0,\n refY: refY || 0,\n id: p.id\n });\n p.node.appendChild(this.node);\n return p;\n };\n var eldata = {};\n /*\\\n * Element.data\n [ method ]\n **\n * Adds or retrieves given value associated with given key. (Don’t confuse\n * with `data-` attributes)\n *\n * See also @Element.removeData\n - key (string) key to store data\n - value (any) #optional value to store\n = (object) @Element\n * or, if value is not specified:\n = (any) value\n > Usage\n | for (var i = 0, i < 5, i++) {\n | paper.circle(10 + 15 * i, 10, 10)\n | .attr({fill: \"#000\"})\n | .data(\"i\", i)\n | .click(function () {\n | alert(this.data(\"i\"));\n | });\n | }\n \\*/\n elproto.data = function (key, value) {\n var data = eldata[this.id] = eldata[this.id] || {};\n if (arguments.length == 0){\n eve(\"snap.data.get.\" + this.id, this, data, null);\n return data;\n }\n if (arguments.length == 1) {\n if (Snap.is(key, \"object\")) {\n for (var i in key) if (key[has](i)) {\n this.data(i, key[i]);\n }\n return this;\n }\n eve(\"snap.data.get.\" + this.id, this, data[key], key);\n return data[key];\n }\n data[key] = value;\n eve(\"snap.data.set.\" + this.id, this, value, key);\n return this;\n };\n /*\\\n * Element.removeData\n [ method ]\n **\n * Removes value associated with an element by given key.\n * If key is not provided, removes all the data of the element.\n - key (string) #optional key\n = (object) @Element\n \\*/\n elproto.removeData = function (key) {\n if (key == null) {\n eldata[this.id] = {};\n } else {\n eldata[this.id] && delete eldata[this.id][key];\n }\n return this;\n };\n /*\\\n * Element.outerSVG\n [ method ]\n **\n * Returns SVG code for the element, equivalent to HTML's `outerHTML`.\n *\n * See also @Element.innerSVG\n = (string) SVG code for the element\n \\*/\n /*\\\n * Element.toString\n [ method ]\n **\n * See @Element.outerSVG\n \\*/\n elproto.outerSVG = elproto.toString = toString(1);\n /*\\\n * Element.innerSVG\n [ method ]\n **\n * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML`\n = (string) SVG code for the element\n \\*/\n elproto.innerSVG = toString();\n function toString(type) {\n return function () {\n var res = type ? \"<\" + this.type : \"\",\n attr = this.node.attributes,\n chld = this.node.childNodes;\n if (type) {\n for (var i = 0, ii = attr.length; i < ii; i++) {\n res += \" \" + attr[i].name + '=\"' +\n attr[i].value.replace(/\"/g, '\\\\\"') + '\"';\n }\n }\n if (chld.length) {\n type && (res += \">\");\n for (i = 0, ii = chld.length; i < ii; i++) {\n if (chld[i].nodeType == 3) {\n res += chld[i].nodeValue;\n } else if (chld[i].nodeType == 1) {\n res += wrap(chld[i]).toString();\n }\n }\n type && (res += \"\");\n } else {\n type && (res += \"/>\");\n }\n return res;\n };\n }\n elproto.toDataURL = function () {\n if (window && window.btoa) {\n var bb = this.getBBox(),\n svg = Snap.format('{contents}', {\n x: +bb.x.toFixed(3),\n y: +bb.y.toFixed(3),\n width: +bb.width.toFixed(3),\n height: +bb.height.toFixed(3),\n contents: this.outerSVG()\n });\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(svg)));\n }\n };\n /*\\\n * Fragment.select\n [ method ]\n **\n * See @Element.select\n \\*/\n Fragment.prototype.select = elproto.select;\n /*\\\n * Fragment.selectAll\n [ method ]\n **\n * See @Element.selectAll\n \\*/\n Fragment.prototype.selectAll = elproto.selectAll;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var objectToString = Object.prototype.toString,\n Str = String,\n math = Math,\n E = \"\";\n function Matrix(a, b, c, d, e, f) {\n if (b == null && objectToString.call(a) == \"[object SVGMatrix]\") {\n this.a = a.a;\n this.b = a.b;\n this.c = a.c;\n this.d = a.d;\n this.e = a.e;\n this.f = a.f;\n return;\n }\n if (a != null) {\n this.a = +a;\n this.b = +b;\n this.c = +c;\n this.d = +d;\n this.e = +e;\n this.f = +f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n (function (matrixproto) {\n /*\\\n * Matrix.add\n [ method ]\n **\n * Adds the given matrix to existing one\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n matrixproto.add = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.add(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + b * this.c,\n bNew = a * this.b + b * this.d;\n this.e += e * this.a + f * this.c;\n this.f += e * this.b + f * this.d;\n this.c = c * this.a + d * this.c;\n this.d = c * this.b + d * this.d;\n\n this.a = aNew;\n this.b = bNew;\n return this;\n };\n /*\\\n * Matrix.multLeft\n [ method ]\n **\n * Multiplies a passed affine transform to the left: M * this.\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n Matrix.prototype.multLeft = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.multLeft(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + c * this.b,\n cNew = a * this.c + c * this.d,\n eNew = a * this.e + c * this.f + e;\n this.b = b * this.a + d * this.b;\n this.d = b * this.c + d * this.d;\n this.f = b * this.e + d * this.f + f;\n\n this.a = aNew;\n this.c = cNew;\n this.e = eNew;\n return this;\n };\n /*\\\n * Matrix.invert\n [ method ]\n **\n * Returns an inverted version of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.invert = function () {\n var me = this,\n x = me.a * me.d - me.b * me.c;\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n };\n /*\\\n * Matrix.clone\n [ method ]\n **\n * Returns a copy of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.clone = function () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n /*\\\n * Matrix.translate\n [ method ]\n **\n * Translate the matrix\n - x (number) horizontal offset distance\n - y (number) vertical offset distance\n \\*/\n matrixproto.translate = function (x, y) {\n this.e += x * this.a + y * this.c;\n this.f += x * this.b + y * this.d;\n return this;\n };\n /*\\\n * Matrix.scale\n [ method ]\n **\n * Scales the matrix\n - x (number) amount to be scaled, with `1` resulting in no change\n - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.)\n - cx (number) #optional horizontal origin point from which to scale\n - cy (number) #optional vertical origin point from which to scale\n * Default cx, cy is the middle point of the element.\n \\*/\n matrixproto.scale = function (x, y, cx, cy) {\n y == null && (y = x);\n (cx || cy) && this.translate(cx, cy);\n this.a *= x;\n this.b *= x;\n this.c *= y;\n this.d *= y;\n (cx || cy) && this.translate(-cx, -cy);\n return this;\n };\n /*\\\n * Matrix.rotate\n [ method ]\n **\n * Rotates the matrix\n - a (number) angle of rotation, in degrees\n - x (number) horizontal origin point from which to rotate\n - y (number) vertical origin point from which to rotate\n \\*/\n matrixproto.rotate = function (a, x, y) {\n a = Snap.rad(a);\n x = x || 0;\n y = y || 0;\n var cos = +math.cos(a).toFixed(9),\n sin = +math.sin(a).toFixed(9);\n this.add(cos, sin, -sin, cos, x, y);\n return this.add(1, 0, 0, 1, -x, -y);\n };\n /*\\\n * Matrix.skewX\n [ method ]\n **\n * Skews the matrix along the x-axis\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skewX = function (x) {\n return this.skew(x, 0);\n };\n /*\\\n * Matrix.skewY\n [ method ]\n **\n * Skews the matrix along the y-axis\n - y (number) Angle to skew along the y-axis (in degrees).\n \\*/\n matrixproto.skewY = function (y) {\n return this.skew(0, y);\n };\n /*\\\n * Matrix.skew\n [ method ]\n **\n * Skews the matrix\n - y (number) Angle to skew along the y-axis (in degrees).\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skew = function (x, y) {\n x = x || 0;\n y = y || 0;\n x = Snap.rad(x);\n y = Snap.rad(y);\n var c = math.tan(x).toFixed(9);\n var b = math.tan(y).toFixed(9);\n return this.add(1, b, c, 1, 0, 0);\n };\n /*\\\n * Matrix.x\n [ method ]\n **\n * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n - x (number)\n - y (number)\n = (number) x\n \\*/\n matrixproto.x = function (x, y) {\n return x * this.a + y * this.c + this.e;\n };\n /*\\\n * Matrix.y\n [ method ]\n **\n * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n - x (number)\n - y (number)\n = (number) y\n \\*/\n matrixproto.y = function (x, y) {\n return x * this.b + y * this.d + this.f;\n };\n matrixproto.get = function (i) {\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\n };\n matrixproto.toString = function () {\n return \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\";\n };\n matrixproto.offset = function () {\n return [this.e.toFixed(4), this.f.toFixed(4)];\n };\n function norm(a) {\n return a[0] * a[0] + a[1] * a[1];\n }\n function normalize(a) {\n var mag = math.sqrt(norm(a));\n a[0] && (a[0] /= mag);\n a[1] && (a[1] /= mag);\n }\n /*\\\n * Matrix.determinant\n [ method ]\n **\n * Finds determinant of the given matrix.\n = (number) determinant\n \\*/\n matrixproto.determinant = function () {\n return this.a * this.d - this.b * this.c;\n };\n /*\\\n * Matrix.split\n [ method ]\n **\n * Splits matrix into primitive transformations\n = (object) in format:\n o dx (number) translation by x\n o dy (number) translation by y\n o scalex (number) scale by x\n o scaley (number) scale by y\n o shear (number) shear\n o rotate (number) rotation in deg\n o isSimple (boolean) could it be represented via simple transformations\n \\*/\n matrixproto.split = function () {\n var out = {};\n // translation\n out.dx = this.e;\n out.dy = this.f;\n\n // scale and shear\n var row = [[this.a, this.b], [this.c, this.d]];\n out.scalex = math.sqrt(norm(row[0]));\n normalize(row[0]);\n\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n out.scaley = math.sqrt(norm(row[1]));\n normalize(row[1]);\n out.shear /= out.scaley;\n\n if (this.determinant() < 0) {\n out.scalex = -out.scalex;\n }\n\n // rotation\n var sin = row[0][1],\n cos = row[1][1];\n if (cos < 0) {\n out.rotate = Snap.deg(math.acos(cos));\n if (sin < 0) {\n out.rotate = 360 - out.rotate;\n }\n } else {\n out.rotate = Snap.deg(math.asin(sin));\n }\n\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n return out;\n };\n /*\\\n * Matrix.toTransformString\n [ method ]\n **\n * Returns transform string that represents given matrix\n = (string) transform string\n \\*/\n matrixproto.toTransformString = function (shorter) {\n var s = shorter || this.split();\n if (!+s.shear.toFixed(9)) {\n s.scalex = +s.scalex.toFixed(4);\n s.scaley = +s.scaley.toFixed(4);\n s.rotate = +s.rotate.toFixed(4);\n return (s.dx || s.dy ? \"t\" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) +\n (s.rotate ? \"r\" + [+s.rotate.toFixed(4), 0, 0] : E) +\n (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E);\n } else {\n return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n }\n };\n })(Matrix.prototype);\n /*\\\n * Snap.Matrix\n [ method ]\n **\n * Matrix constructor, extend on your own risk.\n * To create matrices use @Snap.matrix.\n \\*/\n Snap.Matrix = Matrix;\n /*\\\n * Snap.matrix\n [ method ]\n **\n * Utility method\n **\n * Returns a matrix based on the given parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - svgMatrix (SVGMatrix)\n = (object) @Matrix\n \\*/\n Snap.matrix = function (a, b, c, d, e, f) {\n return new Matrix(a, b, c, d, e, f);\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var has = \"hasOwnProperty\",\n make = Snap._.make,\n wrap = Snap._.wrap,\n is = Snap.is,\n getSomeDefs = Snap._.getSomeDefs,\n reURLValue = /^url\\((['\"]?)([^)]+)\\1\\)$/,\n $ = Snap._.$,\n URL = Snap.url,\n Str = String,\n separator = Snap._.separator,\n E = \"\";\n /*\\\n * Snap.deurl\n [ method ]\n **\n * Unwraps path from `\"url()\"`.\n - value (string) url path\n = (string) unwrapped path\n \\*/\n Snap.deurl = function (value) {\n var res = String(value).match(reURLValue);\n return res ? res[2] : value;\n }\n // Attributes event handlers\n eve.on(\"snap.util.attr.mask\", function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value.type == \"mask\") {\n var mask = value;\n } else {\n mask = make(\"mask\", getSomeDefs(this));\n mask.node.appendChild(value.node);\n }\n !mask.node.id && $(mask.node, {\n id: mask.id\n });\n $(this.node, {\n mask: URL(mask.id)\n });\n }\n });\n (function (clipIt) {\n eve.on(\"snap.util.attr.clip\", clipIt);\n eve.on(\"snap.util.attr.clip-path\", clipIt);\n eve.on(\"snap.util.attr.clipPath\", clipIt);\n }(function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n var clip,\n node = value.node;\n while (node) {\n if (node.nodeName === \"clipPath\") {\n clip = new Element(node);\n break;\n }\n if (node.nodeName === \"svg\") {\n clip = undefined;\n break;\n }\n node = node.parentNode;\n }\n if (!clip) {\n clip = make(\"clipPath\", getSomeDefs(this));\n clip.node.appendChild(value.node);\n !clip.node.id && $(clip.node, {\n id: clip.id\n });\n }\n $(this.node, {\n \"clip-path\": URL(clip.node.id || clip.id)\n });\n }\n }));\n function fillStroke(name) {\n return function (value) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1 &&\n (value.node.firstChild.tagName == \"radialGradient\" ||\n value.node.firstChild.tagName == \"linearGradient\" ||\n value.node.firstChild.tagName == \"pattern\")) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value instanceof Element) {\n if (value.type == \"radialGradient\" || value.type == \"linearGradient\"\n || value.type == \"pattern\") {\n if (!value.node.id) {\n $(value.node, {\n id: value.id\n });\n }\n var fill = URL(value.node.id);\n } else {\n fill = value.attr(name);\n }\n } else {\n fill = Snap.color(value);\n if (fill.error) {\n var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value);\n if (grad) {\n if (!grad.node.id) {\n $(grad.node, {\n id: grad.id\n });\n }\n fill = URL(grad.node.id);\n } else {\n fill = value;\n }\n } else {\n fill = Str(fill);\n }\n }\n var attrs = {};\n attrs[name] = fill;\n $(this.node, attrs);\n this.node.style[name] = E;\n };\n }\n eve.on(\"snap.util.attr.fill\", fillStroke(\"fill\"));\n eve.on(\"snap.util.attr.stroke\", fillStroke(\"stroke\"));\n var gradrg = /^([lr])(?:\\(([^)]*)\\))?(.*)$/i;\n eve.on(\"snap.util.grad.parse\", function parseGrad(string) {\n string = Str(string);\n var tokens = string.match(gradrg);\n if (!tokens) {\n return null;\n }\n var type = tokens[1],\n params = tokens[2],\n stops = tokens[3];\n params = params.split(/\\s*,\\s*/).map(function (el) {\n return +el == el ? +el : el;\n });\n if (params.length == 1 && params[0] == 0) {\n params = [];\n }\n stops = stops.split(\"-\");\n stops = stops.map(function (el) {\n el = el.split(\":\");\n var out = {\n color: el[0]\n };\n if (el[1]) {\n out.offset = parseFloat(el[1]);\n }\n return out;\n });\n var len = stops.length,\n start = 0,\n j = 0;\n function seed(i, end) {\n var step = (end - start) / (i - j);\n for (var k = j; k < i; k++) {\n stops[k].offset = +(+start + step * (k - j)).toFixed(2);\n }\n j = i;\n start = end;\n }\n len--;\n for (var i = 0; i < len; i++) if (\"offset\" in stops[i]) {\n seed(i, stops[i].offset);\n }\n stops[len].offset = stops[len].offset || 100;\n seed(len, stops[len].offset);\n return {\n type: type,\n params: params,\n stops: stops\n };\n });\n\n eve.on(\"snap.util.attr.d\", function (value) {\n eve.stop();\n if (is(value, \"array\") && is(value[0], \"array\")) {\n value = Snap.path.toString.call(value);\n }\n value = Str(value);\n if (value.match(/[ruo]/i)) {\n value = Snap.path.toAbsolute(value);\n }\n $(this.node, {d: value});\n })(-1);\n eve.on(\"snap.util.attr.#text\", function (value) {\n eve.stop();\n value = Str(value);\n var txt = glob.doc.createTextNode(value);\n while (this.node.firstChild) {\n this.node.removeChild(this.node.firstChild);\n }\n this.node.appendChild(txt);\n })(-1);\n eve.on(\"snap.util.attr.path\", function (value) {\n eve.stop();\n this.attr({d: value});\n })(-1);\n eve.on(\"snap.util.attr.class\", function (value) {\n eve.stop();\n this.node.className.baseVal = value;\n })(-1);\n eve.on(\"snap.util.attr.viewBox\", function (value) {\n var vb;\n if (is(value, \"object\") && \"x\" in value) {\n vb = [value.x, value.y, value.width, value.height].join(\" \");\n } else if (is(value, \"array\")) {\n vb = value.join(\" \");\n } else {\n vb = value;\n }\n $(this.node, {\n viewBox: vb\n });\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.transform\", function (value) {\n this.transform(value);\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.r\", function (value) {\n if (this.type == \"rect\") {\n eve.stop();\n $(this.node, {\n rx: value,\n ry: value\n });\n }\n })(-1);\n eve.on(\"snap.util.attr.textpath\", function (value) {\n eve.stop();\n if (this.type == \"text\") {\n var id, tp, node;\n if (!value && this.textPath) {\n tp = this.textPath;\n while (tp.node.firstChild) {\n this.node.appendChild(tp.node.firstChild);\n }\n tp.remove();\n delete this.textPath;\n return;\n }\n if (is(value, \"string\")) {\n var defs = getSomeDefs(this),\n path = wrap(defs.parentNode).path(value);\n defs.appendChild(path.node);\n id = path.id;\n path.attr({id: id});\n } else {\n value = wrap(value);\n if (value instanceof Element) {\n id = value.attr(\"id\");\n if (!id) {\n id = value.id;\n value.attr({id: id});\n }\n }\n }\n if (id) {\n tp = this.textPath;\n node = this.node;\n if (tp) {\n tp.attr({\"xlink:href\": \"#\" + id});\n } else {\n tp = $(\"textPath\", {\n \"xlink:href\": \"#\" + id\n });\n while (node.firstChild) {\n tp.appendChild(node.firstChild);\n }\n node.appendChild(tp);\n this.textPath = wrap(tp);\n }\n }\n }\n })(-1);\n eve.on(\"snap.util.attr.text\", function (value) {\n if (this.type == \"text\") {\n var i = 0,\n node = this.node,\n tuner = function (chunk) {\n var out = $(\"tspan\");\n if (is(chunk, \"array\")) {\n for (var i = 0; i < chunk.length; i++) {\n out.appendChild(tuner(chunk[i]));\n }\n } else {\n out.appendChild(glob.doc.createTextNode(chunk));\n }\n out.normalize && out.normalize();\n return out;\n };\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n var tuned = tuner(value);\n while (tuned.firstChild) {\n node.appendChild(tuned.firstChild);\n }\n }\n eve.stop();\n })(-1);\n function setFontSize(value) {\n eve.stop();\n if (value == +value) {\n value += \"px\";\n }\n this.node.style.fontSize = value;\n }\n eve.on(\"snap.util.attr.fontSize\", setFontSize)(-1);\n eve.on(\"snap.util.attr.font-size\", setFontSize)(-1);\n\n\n eve.on(\"snap.util.getattr.transform\", function () {\n eve.stop();\n return this.transform();\n })(-1);\n eve.on(\"snap.util.getattr.textpath\", function () {\n eve.stop();\n return this.textPath;\n })(-1);\n // Markers\n (function () {\n function getter(end) {\n return function () {\n eve.stop();\n var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue(\"marker-\" + end);\n if (style == \"none\") {\n return style;\n } else {\n return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));\n }\n };\n }\n function setter(end) {\n return function (value) {\n eve.stop();\n var name = \"marker\" + end.charAt(0).toUpperCase() + end.substring(1);\n if (value == \"\" || !value) {\n this.node.style[name] = \"none\";\n return;\n }\n if (value.type == \"marker\") {\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n }\n this.node.style[name] = URL(id);\n return;\n }\n };\n }\n eve.on(\"snap.util.getattr.marker-end\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.markerEnd\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.marker-start\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.markerStart\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.marker-mid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.getattr.markerMid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.marker-end\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.markerEnd\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.marker-start\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.markerStart\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.marker-mid\", setter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.markerMid\", setter(\"mid\"))(-1);\n }());\n eve.on(\"snap.util.getattr.r\", function () {\n if (this.type == \"rect\" && $(this.node, \"rx\") == $(this.node, \"ry\")) {\n eve.stop();\n return $(this.node, \"rx\");\n }\n })(-1);\n function textExtract(node) {\n var out = [];\n var children = node.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var chi = children[i];\n if (chi.nodeType == 3) {\n out.push(chi.nodeValue);\n }\n if (chi.tagName == \"tspan\") {\n if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) {\n out.push(chi.firstChild.nodeValue);\n } else {\n out.push(textExtract(chi));\n }\n }\n }\n return out;\n }\n eve.on(\"snap.util.getattr.text\", function () {\n if (this.type == \"text\" || this.type == \"tspan\") {\n eve.stop();\n var out = textExtract(this.node);\n return out.length == 1 ? out[0] : out;\n }\n })(-1);\n eve.on(\"snap.util.getattr.#text\", function () {\n return this.node.textContent;\n })(-1);\n eve.on(\"snap.util.getattr.fill\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.fill\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.stroke\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.stroke\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.viewBox\", function () {\n eve.stop();\n var vb = $(this.node, \"viewBox\");\n if (vb) {\n vb = vb.split(separator);\n return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.points\", function () {\n var p = $(this.node, \"points\");\n eve.stop();\n if (p) {\n return p.split(separator);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.path\", function () {\n var p = $(this.node, \"d\");\n eve.stop();\n return p;\n })(-1);\n eve.on(\"snap.util.getattr.class\", function () {\n return this.node.className.baseVal;\n })(-1);\n function getFontSize() {\n eve.stop();\n return this.node.style.fontSize;\n }\n eve.on(\"snap.util.getattr.fontSize\", getFontSize)(-1);\n eve.on(\"snap.util.getattr.font-size\", getFontSize)(-1);\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var rgNotSpace = /\\S+/g,\n rgBadSpace = /[\\t\\r\\n\\f]/g,\n rgTrim = /(^\\s+|\\s+$)/g,\n Str = String,\n elproto = Element.prototype;\n /*\\\n * Element.addClass\n [ method ]\n **\n * Adds given class name or list of class names to the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.addClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n\n if (classes.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (!~pos) {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.removeClass\n [ method ]\n **\n * Removes given class name or list of class names from the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.removeClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n if (curClasses.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.hasClass\n [ method ]\n **\n * Checks if the element has a given class name in the list of class names applied to it.\n - value (string) class name\n **\n = (boolean) `true` if the element has given class\n \\*/\n elproto.hasClass = function (value) {\n var elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [];\n return !!~curClasses.indexOf(value);\n };\n /*\\\n * Element.toggleClass\n [ method ]\n **\n * Add or remove one or more classes from the element, depending on either\n * the class’s presence or the value of the `flag` argument.\n - value (string) class name or space separated list of class names\n - flag (boolean) value to determine whether the class should be added or removed\n **\n = (Element) original element.\n \\*/\n elproto.toggleClass = function (value, flag) {\n if (flag != null) {\n if (flag) {\n return this.addClass(value);\n } else {\n return this.removeClass(value);\n }\n }\n var classes = (value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n } else {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var operators = {\n \"+\": function (x, y) {\n return x + y;\n },\n \"-\": function (x, y) {\n return x - y;\n },\n \"/\": function (x, y) {\n return x / y;\n },\n \"*\": function (x, y) {\n return x * y;\n }\n },\n Str = String,\n reUnit = /[a-z]+$/i,\n reAddon = /^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n eve.on(\"snap.util.attr\", function (val) {\n var plus = Str(val).match(reAddon);\n if (plus) {\n var evnt = eve.nt(),\n name = evnt.substring(evnt.lastIndexOf(\".\") + 1),\n a = this.attr(name),\n atr = {};\n eve.stop();\n var unit = plus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[plus[1]];\n if (aUnit && aUnit == unit) {\n val = op(parseFloat(a), +plus[2]);\n } else {\n a = this.asPX(name);\n val = op(this.asPX(name), this.asPX(name, plus[2] + unit));\n }\n if (isNaN(a) || isNaN(val)) {\n return;\n }\n atr[name] = val;\n this.attr(atr);\n }\n })(-10);\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this,\n bplus = Str(b).match(reAddon);\n if (bplus) {\n eve.stop();\n var unit = bplus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[bplus[1]];\n if (aUnit && aUnit == unit) {\n return {\n from: parseFloat(a),\n to: op(parseFloat(a), +bplus[2]),\n f: getUnit(aUnit)\n };\n } else {\n a = this.asPX(name);\n return {\n from: a,\n to: op(a, this.asPX(name, bplus[2] + unit)),\n f: getNumber\n };\n }\n }\n })(-10);\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var proto = Paper.prototype,\n is = Snap.is;\n /*\\\n * Paper.rect\n [ method ]\n *\n * Draws a rectangle\n **\n - x (number) x coordinate of the top left corner\n - y (number) y coordinate of the top left corner\n - width (number) width\n - height (number) height\n - rx (number) #optional horizontal radius for rounded corners, default is 0\n - ry (number) #optional vertical radius for rounded corners, default is rx or 0\n = (object) the `rect` element\n **\n > Usage\n | // regular rectangle\n | var c = paper.rect(10, 10, 50, 50);\n | // rectangle with rounded corners\n | var c = paper.rect(40, 40, 50, 50, 10);\n \\*/\n proto.rect = function (x, y, w, h, rx, ry) {\n var attr;\n if (ry == null) {\n ry = rx;\n }\n if (is(x, \"object\") && x == \"[object Object]\") {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n width: w,\n height: h\n };\n if (rx != null) {\n attr.rx = rx;\n attr.ry = ry;\n }\n }\n return this.el(\"rect\", attr);\n };\n /*\\\n * Paper.circle\n [ method ]\n **\n * Draws a circle\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - r (number) radius\n = (object) the `circle` element\n **\n > Usage\n | var c = paper.circle(50, 50, 40);\n \\*/\n proto.circle = function (cx, cy, r) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr = {\n cx: cx,\n cy: cy,\n r: r\n };\n }\n return this.el(\"circle\", attr);\n };\n\n var preload = (function () {\n function onerror() {\n this.parentNode.removeChild(this);\n }\n return function (src, f) {\n var img = glob.doc.createElement(\"img\"),\n body = glob.doc.body;\n img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n img.onload = function () {\n f.call(img);\n img.onload = img.onerror = null;\n body.removeChild(img);\n };\n img.onerror = onerror;\n body.appendChild(img);\n img.src = src;\n };\n }());\n\n /*\\\n * Paper.image\n [ method ]\n **\n * Places an image on the surface\n **\n - src (string) URI of the source image\n - x (number) x offset position\n - y (number) y offset position\n - width (number) width of the image\n - height (number) height of the image\n = (object) the `image` element\n * or\n = (object) Snap element object with type `image`\n **\n > Usage\n | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n \\*/\n proto.image = function (src, x, y, width, height) {\n var el = this.el(\"image\");\n if (is(src, \"object\") && \"src\" in src) {\n el.attr(src);\n } else if (src != null) {\n var set = {\n \"xlink:href\": src,\n preserveAspectRatio: \"none\"\n };\n if (x != null && y != null) {\n set.x = x;\n set.y = y;\n }\n if (width != null && height != null) {\n set.width = width;\n set.height = height;\n } else {\n preload(src, function () {\n Snap._.$(el.node, {\n width: this.offsetWidth,\n height: this.offsetHeight\n });\n });\n }\n Snap._.$(el.node, set);\n }\n return el;\n };\n /*\\\n * Paper.ellipse\n [ method ]\n **\n * Draws an ellipse\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - rx (number) horizontal radius\n - ry (number) vertical radius\n = (object) the `ellipse` element\n **\n > Usage\n | var c = paper.ellipse(50, 50, 40, 20);\n \\*/\n proto.ellipse = function (cx, cy, rx, ry) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr ={\n cx: cx,\n cy: cy,\n rx: rx,\n ry: ry\n };\n }\n return this.el(\"ellipse\", attr);\n };\n // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier.\n /*\\\n * Paper.path\n [ method ]\n **\n * Creates a `` element using the given string as the path's definition\n - pathString (string) #optional path string in SVG format\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example:\n | \"M10,20L30,40\"\n * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates.\n *\n #

Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

\n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n #
CommandNameParameters
Mmoveto(x y)+
Zclosepath(none)
Llineto(x y)+
Hhorizontal linetox+
Vvertical linetoy+
Ccurveto(x1 y1 x2 y2 x y)+
Ssmooth curveto(x2 y2 x y)+
Qquadratic Bézier curveto(x1 y1 x y)+
Tsmooth quadratic Bézier curveto(x y)+
Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
RCatmull-Rom curveto*x1 y1 (x y)+
\n * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier.\n * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point.\n > Usage\n | var c = paper.path(\"M10 10L90 90\");\n | // draw a diagonal line:\n | // move to 10,10, line to 90,90\n \\*/\n proto.path = function (d) {\n var attr;\n if (is(d, \"object\") && !is(d, \"array\")) {\n attr = d;\n } else if (d) {\n attr = {d: d};\n }\n return this.el(\"path\", attr);\n };\n /*\\\n * Paper.g\n [ method ]\n **\n * Creates a group element\n **\n - varargs (…) #optional elements to nest within the group\n = (object) the `g` element\n **\n > Usage\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g(c2, c1); // note that the order of elements is different\n * or\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g();\n | g.add(c2, c1);\n \\*/\n /*\\\n * Paper.group\n [ method ]\n **\n * See @Paper.g\n \\*/\n proto.group = proto.g = function (first) {\n var attr,\n el = this.el(\"g\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.svg\n [ method ]\n **\n * Creates a nested SVG element.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `svg` element\n **\n \\*/\n proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) {\n var attrs = {};\n if (is(x, \"object\") && y == null) {\n attrs = x;\n } else {\n if (x != null) {\n attrs.x = x;\n }\n if (y != null) {\n attrs.y = y;\n }\n if (width != null) {\n attrs.width = width;\n }\n if (height != null) {\n attrs.height = height;\n }\n if (vbx != null && vby != null && vbw != null && vbh != null) {\n attrs.viewBox = [vbx, vby, vbw, vbh];\n }\n }\n return this.el(\"svg\", attrs);\n };\n /*\\\n * Paper.mask\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a mask.\n **\n = (object) the `mask` element\n **\n \\*/\n proto.mask = function (first) {\n var attr,\n el = this.el(\"mask\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.ptrn\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a pattern.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `pattern` element\n **\n \\*/\n proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) {\n if (is(x, \"object\")) {\n var attr = x;\n } else {\n attr = {patternUnits: \"userSpaceOnUse\"};\n if (x) {\n attr.x = x;\n }\n if (y) {\n attr.y = y;\n }\n if (width != null) {\n attr.width = width;\n }\n if (height != null) {\n attr.height = height;\n }\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n } else {\n attr.viewBox = [x || 0, y || 0, width || 0, height || 0];\n }\n }\n return this.el(\"pattern\", attr);\n };\n /*\\\n * Paper.use\n [ method ]\n **\n * Creates a element.\n - id (string) @optional id of element to link\n * or\n - id (Element) @optional element to link\n **\n = (object) the `use` element\n **\n \\*/\n proto.use = function (id) {\n if (id != null) {\n if (id instanceof Element) {\n if (!id.attr(\"id\")) {\n id.attr({id: Snap._.id(id)});\n }\n id = id.attr(\"id\");\n }\n if (String(id).charAt() == \"#\") {\n id = id.substring(1);\n }\n return this.el(\"use\", {\"xlink:href\": \"#\" + id});\n } else {\n return Element.prototype.use.call(this);\n }\n };\n /*\\\n * Paper.symbol\n [ method ]\n **\n * Creates a element.\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n = (object) the `symbol` element\n **\n \\*/\n proto.symbol = function (vx, vy, vw, vh) {\n var attr = {};\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n }\n\n return this.el(\"symbol\", attr);\n };\n /*\\\n * Paper.text\n [ method ]\n **\n * Draws a text string\n **\n - x (number) x coordinate position\n - y (number) y coordinate position\n - text (string|array) The text string to draw or array of strings to nest within separate `` elements\n = (object) the `text` element\n **\n > Usage\n | var t1 = paper.text(50, 50, \"Snap\");\n | var t2 = paper.text(50, 50, [\"S\",\"n\",\"a\",\"p\"]);\n | // Text path usage\n | t1.attr({textpath: \"M10,10L100,100\"});\n | // or\n | var pth = paper.path(\"M10,10L100,100\");\n | t1.attr({textpath: pth});\n \\*/\n proto.text = function (x, y, text) {\n var attr = {};\n if (is(x, \"object\")) {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n text: text || \"\"\n };\n }\n return this.el(\"text\", attr);\n };\n /*\\\n * Paper.line\n [ method ]\n **\n * Draws a line\n **\n - x1 (number) x coordinate position of the start\n - y1 (number) y coordinate position of the start\n - x2 (number) x coordinate position of the end\n - y2 (number) y coordinate position of the end\n = (object) the `line` element\n **\n > Usage\n | var t1 = paper.line(50, 50, 100, 100);\n \\*/\n proto.line = function (x1, y1, x2, y2) {\n var attr = {};\n if (is(x1, \"object\")) {\n attr = x1;\n } else if (x1 != null) {\n attr = {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n }\n return this.el(\"line\", attr);\n };\n /*\\\n * Paper.polyline\n [ method ]\n **\n * Draws a polyline\n **\n - points (array) array of points\n * or\n - varargs (…) points\n = (object) the `polyline` element\n **\n > Usage\n | var p1 = paper.polyline([10, 10, 100, 100]);\n | var p2 = paper.polyline(10, 10, 100, 100);\n \\*/\n proto.polyline = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polyline\", attr);\n };\n /*\\\n * Paper.polygon\n [ method ]\n **\n * Draws a polygon. See @Paper.polyline\n \\*/\n proto.polygon = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polygon\", attr);\n };\n // gradients\n (function () {\n var $ = Snap._.$;\n // gradients' helpers\n /*\\\n * Element.stops\n [ method ]\n **\n * Only for gradients!\n * Returns array of gradient stops elements.\n = (array) the stops array.\n \\*/\n function Gstops() {\n return this.selectAll(\"stop\");\n }\n /*\\\n * Element.addStop\n [ method ]\n **\n * Only for gradients!\n * Adds another stop to the gradient.\n - color (string) stops color\n - offset (number) stops offset 0..100\n = (object) gradient element\n \\*/\n function GaddStop(color, offset) {\n var stop = $(\"stop\"),\n attr = {\n offset: +offset + \"%\"\n };\n color = Snap.color(color);\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n $(stop, attr);\n var stops = this.stops(),\n inserted;\n for (var i = 0; i < stops.length; i++) {\n var stopOffset = parseFloat(stops[i].attr(\"offset\"));\n if (stopOffset > offset) {\n this.node.insertBefore(stop, stops[i].node);\n inserted = true;\n break;\n }\n }\n if (!inserted) {\n this.node.appendChild(stop);\n }\n return this;\n }\n function GgetBBox() {\n if (this.type == \"linearGradient\") {\n var x1 = $(this.node, \"x1\") || 0,\n x2 = $(this.node, \"x2\") || 1,\n y1 = $(this.node, \"y1\") || 0,\n y2 = $(this.node, \"y2\") || 0;\n return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1));\n } else {\n var cx = this.node.cx || .5,\n cy = this.node.cy || .5,\n r = this.node.r || 0;\n return Snap._.box(cx - r, cy - r, r * 2, r * 2);\n }\n }\n /*\\\n * Element.setStops\n [ method ]\n **\n * Only for gradients!\n * Updates stops of the gradient based on passed gradient descriptor. See @Ppaer.gradient\n - str (string) gradient descriptor part after `()`.\n = (object) gradient element\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n | g.setStops(\"#fff-#000-#f00-#fc0\");\n \\*/\n function GsetStops(str) {\n var grad = str,\n stops = this.stops();\n if (typeof str == \"string\") {\n grad = eve(\"snap.util.grad.parse\", null, \"l(0,0,0,1)\" + str).firstDefined().stops;\n }\n if (!Snap.is(grad, \"array\")) {\n return;\n }\n for (var i = 0; i < stops.length; i++) {\n if (grad[i]) {\n var color = Snap.color(grad[i].color),\n attr = {\"offset\": grad[i].offset + \"%\"};\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n stops[i].attr(attr);\n } else {\n stops[i].remove();\n }\n }\n for (i = stops.length; i < grad.length; i++) {\n this.addStop(grad[i].color, grad[i].offset);\n }\n return this;\n }\n function gradient(defs, str) {\n var grad = eve(\"snap.util.grad.parse\", null, str).firstDefined(),\n el;\n if (!grad) {\n return null;\n }\n grad.params.unshift(defs);\n if (grad.type.toLowerCase() == \"l\") {\n el = gradientLinear.apply(0, grad.params);\n } else {\n el = gradientRadial.apply(0, grad.params);\n }\n if (grad.type != grad.type.toLowerCase()) {\n $(el.node, {\n gradientUnits: \"userSpaceOnUse\"\n });\n }\n var stops = grad.stops,\n len = stops.length;\n for (var i = 0; i < len; i++) {\n var stop = stops[i];\n el.addStop(stop.color, stop.offset);\n }\n return el;\n }\n function gradientLinear(defs, x1, y1, x2, y2) {\n var el = Snap._.make(\"linearGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n el.setStops = GsetStops;\n if (x1 != null) {\n $(el.node, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n }\n return el;\n }\n function gradientRadial(defs, cx, cy, r, fx, fy) {\n var el = Snap._.make(\"radialGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n if (cx != null) {\n $(el.node, {\n cx: cx,\n cy: cy,\n r: r\n });\n }\n if (fx != null && fy != null) {\n $(el.node, {\n fx: fx,\n fy: fy\n });\n }\n return el;\n }\n /*\\\n * Paper.gradient\n [ method ]\n **\n * Creates a gradient element\n **\n - gradient (string) gradient descriptor\n > Gradient Descriptor\n * The gradient descriptor is an expression formatted as\n * follows: `()`. The `` can be\n * either linear or radial. The uppercase `L` or `R` letters\n * indicate absolute coordinates offset from the SVG surface.\n * Lowercase `l` or `r` letters indicate coordinates\n * calculated relative to the element to which the gradient is\n * applied. Coordinates specify a linear gradient vector as\n * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`,\n * `r` and optional `fx`, `fy` specifying a focal point away\n * from the center of the circle. Specify `` as a list\n * of dash-separated CSS color values. Each color may be\n * followed by a custom offset value, separated with a colon\n * character.\n > Examples\n * Linear gradient, relative from top-left corner to bottom-right\n * corner, from black through red to white:\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n * Linear gradient, absolute from (0, 0) to (100, 100), from black\n * through red at 25% to white:\n | var g = paper.gradient(\"L(0, 0, 100, 100)#000-#f00:25-#fff\");\n * Radial gradient, relative from the center of the element with radius\n * half the width, from black to white:\n | var g = paper.gradient(\"r(0.5, 0.5, 0.5)#000-#fff\");\n * To apply the gradient:\n | paper.circle(50, 50, 40).attr({\n | fill: g\n | });\n = (object) the `gradient` element\n \\*/\n proto.gradient = function (str) {\n return gradient(this.defs, str);\n };\n proto.gradientLinear = function (x1, y1, x2, y2) {\n return gradientLinear(this.defs, x1, y1, x2, y2);\n };\n proto.gradientRadial = function (cx, cy, r, fx, fy) {\n return gradientRadial(this.defs, cx, cy, r, fx, fy);\n };\n /*\\\n * Paper.toString\n [ method ]\n **\n * Returns SVG code for the @Paper\n = (string) SVG code for the @Paper\n \\*/\n proto.toString = function () {\n var doc = this.node.ownerDocument,\n f = doc.createDocumentFragment(),\n d = doc.createElement(\"div\"),\n svg = this.node.cloneNode(true),\n res;\n f.appendChild(d);\n d.appendChild(svg);\n Snap._.$(svg, {xmlns: \"http://www.w3.org/2000/svg\"});\n res = d.innerHTML;\n f.removeChild(f.firstChild);\n return res;\n };\n /*\\\n * Paper.toDataURL\n [ method ]\n **\n * Returns SVG code for the @Paper as Data URI string.\n = (string) Data URI string\n \\*/\n proto.toDataURL = function () {\n if (window && window.btoa) {\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(this)));\n }\n };\n /*\\\n * Paper.clear\n [ method ]\n **\n * Removes all child nodes of the paper, except .\n \\*/\n proto.clear = function () {\n var node = this.node.firstChild,\n next;\n while (node) {\n next = node.nextSibling;\n if (node.tagName != \"defs\") {\n node.parentNode.removeChild(node);\n } else {\n proto.clear.call({node: node});\n }\n node = next;\n }\n };\n }());\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n is = Snap.is,\n clone = Snap._.clone,\n has = \"hasOwnProperty\",\n p2s = /,?([a-z]),?/gi,\n toFloat = parseFloat,\n math = Math,\n PI = math.PI,\n mmin = math.min,\n mmax = math.max,\n pow = math.pow,\n abs = math.abs;\n function paths(ps) {\n var p = paths.ps = paths.ps || {};\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n setTimeout(function () {\n for (var key in p) if (p[has](key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n });\n return p[ps];\n }\n function box(x, y, width, height) {\n if (x == null) {\n x = y = width = height = 0;\n }\n if (y == null) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n return {\n x: x,\n y: y,\n width: width,\n w: width,\n height: height,\n h: height,\n x2: x + width,\n y2: y + height,\n cx: x + width / 2,\n cy: y + height / 2,\n r1: math.min(width, height) / 2,\n r2: math.max(width, height) / 2,\n r0: math.sqrt(width * width + height * height) / 2,\n path: rectPath(x, y, width, height),\n vb: [x, y, width, height].join(\" \")\n };\n }\n function toString() {\n return this.join(\",\").replace(p2s, \"$1\");\n }\n function pathClone(pathArray) {\n var res = clone(pathArray);\n res.toString = toString;\n return res;\n }\n function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n if (length == null) {\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n } else {\n return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y,\n getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n }\n }\n function getLengthFactory(istotal, subpath) {\n function O(val) {\n return +(+val).toFixed(3);\n }\n return Snap._.cacher(function (path, length, onlystart) {\n if (path instanceof Element) {\n path = path.attr(\"d\");\n }\n path = path2curve(path);\n var x, y, p, l, sp = \"\", subpaths = {}, point,\n len = 0;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = +p[1];\n y = +p[2];\n } else {\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n if (len + l > length) {\n if (subpath && !subpaths.start) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n sp += [\n \"C\" + O(point.start.x),\n O(point.start.y),\n O(point.m.x),\n O(point.m.y),\n O(point.x),\n O(point.y)\n ];\n if (onlystart) {return sp;}\n subpaths.start = sp;\n sp = [\n \"M\" + O(point.x),\n O(point.y) + \"C\" + O(point.n.x),\n O(point.n.y),\n O(point.end.x),\n O(point.end.y),\n O(p[5]),\n O(p[6])\n ].join();\n len += l;\n x = +p[5];\n y = +p[6];\n continue;\n }\n if (!istotal && !subpath) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n return point;\n }\n }\n len += l;\n x = +p[5];\n y = +p[6];\n }\n sp += p.shift() + p;\n }\n subpaths.end = sp;\n point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n return point;\n }, null, Snap._.clone);\n }\n var getTotalLength = getLengthFactory(1),\n getPointAtLength = getLengthFactory(),\n getSubpathsAtLength = getLengthFactory(0, 1);\n function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n ax = t1 * p1x + t * c1x,\n ay = t1 * p1y + t * c1y,\n cx = t1 * c2x + t * p2x,\n cy = t1 * c2y + t * p2y,\n alpha = 90 - math.atan2(mx - nx, my - ny) * 180 / PI;\n // (mx > nx || my < ny) && (alpha += 180);\n return {\n x: x,\n y: y,\n m: {x: mx, y: my},\n n: {x: nx, y: ny},\n start: {x: ax, y: ay},\n end: {x: cx, y: cy},\n alpha: alpha\n };\n }\n function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!Snap.is(p1x, \"array\")) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n var bbox = curveDim.apply(null, p1x);\n return box(\n bbox.min.x,\n bbox.min.y,\n bbox.max.x - bbox.min.x,\n bbox.max.y - bbox.min.y\n );\n }\n function isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n }\n function isBBoxIntersect(bbox1, bbox2) {\n bbox1 = box(bbox1);\n bbox2 = box(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n }\n function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n }\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z == null) {\n z = 1;\n }\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2,\n n = 12,\n Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n sum = 0;\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * math.sqrt(comb);\n }\n return z2 * sum;\n }\n function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n return;\n }\n var t = 1,\n step = t / 2,\n t2 = t - step,\n l,\n e = .01;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n while (abs(l - ll) > e) {\n step /= 2;\n t2 += (l < ll ? 1 : -1) * step;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n }\n return t2;\n }\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n var px = nx / denominator,\n py = ny / denominator,\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n return {x: px, y: py};\n }\n function inter(bez1, bez2) {\n return interHelper(bez1, bez2);\n }\n function interCount(bez1, bez2) {\n return interHelper(bez1, bez2, 1);\n }\n function interHelper(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1),\n bbox2 = bezierBBox(bez2);\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n var l1 = bezlen.apply(0, bez1),\n l2 = bezlen.apply(0, bez2),\n n1 = ~~(l1 / 8),\n n2 = ~~(l2 / 8),\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n for (var i = 0; i < n1 + 1; i++) {\n var p = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n dots1.push({x: p.x, y: p.y, t: i / n1});\n }\n for (i = 0; i < n2 + 1; i++) {\n p = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n dots2.push({x: p.x, y: p.y, t: i / n2});\n }\n for (i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n if (is) {\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n continue;\n }\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n return res;\n }\n function pathIntersection(path1, path2) {\n return interPathHelper(path1, path2);\n }\n function pathIntersectionNumber(path1, path2) {\n return interPathHelper(path1, path2, 1);\n }\n function interPathHelper(path1, path2, justCount) {\n path1 = path2curve(path1);\n path2 = path2curve(path2);\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n if (pi[0] == \"M\") {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] == \"C\") {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n if (pj[0] == \"M\") {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] == \"C\") {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n var intr = interHelper(bez1, bez2, justCount);\n if (justCount) {\n res += intr;\n } else {\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n res = res.concat(intr);\n }\n }\n }\n }\n }\n return res;\n }\n function isPointInsidePath(path, x, y) {\n var bbox = pathBBox(path);\n return isPointInsideBBox(bbox, x, y) &&\n interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n }\n function pathBBox(path) {\n var pth = paths(path);\n if (pth.bbox) {\n return clone(pth.bbox);\n }\n if (!path) {\n return box();\n }\n path = path2curve(path);\n var x = 0,\n y = 0,\n X = [],\n Y = [],\n p;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = p[1];\n y = p[2];\n X.push(x);\n Y.push(y);\n } else {\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n X = X.concat(dim.min.x, dim.max.x);\n Y = Y.concat(dim.min.y, dim.max.y);\n x = p[5];\n y = p[6];\n }\n }\n var xmin = mmin.apply(0, X),\n ymin = mmin.apply(0, Y),\n xmax = mmax.apply(0, X),\n ymax = mmax.apply(0, Y),\n bb = box(xmin, ymin, xmax - xmin, ymax - ymin);\n pth.bbox = clone(bb);\n return bb;\n }\n function rectPath(x, y, w, h, r) {\n if (r) {\n return [\n [\"M\", +x + +r, y],\n [\"l\", w - r * 2, 0],\n [\"a\", r, r, 0, 0, 1, r, r],\n [\"l\", 0, h - r * 2],\n [\"a\", r, r, 0, 0, 1, -r, r],\n [\"l\", r * 2 - w, 0],\n [\"a\", r, r, 0, 0, 1, -r, -r],\n [\"l\", 0, r * 2 - h],\n [\"a\", r, r, 0, 0, 1, r, -r],\n [\"z\"]\n ];\n }\n var res = [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n res.toString = toString;\n return res;\n }\n function ellipsePath(x, y, rx, ry, a) {\n if (a == null && ry == null) {\n ry = rx;\n }\n x = +x;\n y = +y;\n rx = +rx;\n ry = +ry;\n if (a != null) {\n var rad = Math.PI / 180,\n x1 = x + rx * Math.cos(-ry * rad),\n x2 = x + rx * Math.cos(-a * rad),\n y1 = y + rx * Math.sin(-ry * rad),\n y2 = y + rx * Math.sin(-a * rad),\n res = [[\"M\", x1, y1], [\"A\", rx, rx, 0, +(a - ry > 180), 0, x2, y2]];\n } else {\n res = [\n [\"M\", x, y],\n [\"m\", 0, -ry],\n [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry],\n [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry],\n [\"z\"]\n ];\n }\n res.toString = toString;\n return res;\n }\n var unit2px = Snap._unit2px,\n getPath = {\n path: function (el) {\n return el.attr(\"path\");\n },\n circle: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx, attr.cy, attr.r);\n },\n ellipse: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry);\n },\n rect: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry);\n },\n image: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height);\n },\n line: function (el) {\n return \"M\" + [el.attr(\"x1\") || 0, el.attr(\"y1\") || 0, el.attr(\"x2\"), el.attr(\"y2\")];\n },\n polyline: function (el) {\n return \"M\" + el.attr(\"points\");\n },\n polygon: function (el) {\n return \"M\" + el.attr(\"points\") + \"z\";\n },\n deflt: function (el) {\n var bbox = el.node.getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n }\n };\n function pathToRelative(pathArray) {\n var pth = paths(pathArray),\n lowerCase = String.prototype.toLowerCase;\n if (pth.rel) {\n return pathClone(pth.rel);\n }\n if (!Snap.is(pathArray, \"array\") || !Snap.is(pathArray && pathArray[0], \"array\")) {\n pathArray = Snap.parsePathString(pathArray);\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = pathArray[0][1];\n y = pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res.push([\"M\", x, y]);\n }\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var r = res[i] = [],\n pa = pathArray[i];\n if (pa[0] != lowerCase.call(pa[0])) {\n r[0] = lowerCase.call(pa[0]);\n switch (r[0]) {\n case \"a\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] - x).toFixed(3);\n r[7] = +(pa[7] - y).toFixed(3);\n break;\n case \"v\":\n r[1] = +(pa[1] - y).toFixed(3);\n break;\n case \"m\":\n mx = pa[1];\n my = pa[2];\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +(pa[j] - (j % 2 ? x : y)).toFixed(3);\n }\n }\n } else {\n r = res[i] = [];\n if (pa[0] == \"m\") {\n mx = pa[1] + x;\n my = pa[2] + y;\n }\n for (var k = 0, kk = pa.length; k < kk; k++) {\n res[i][k] = pa[k];\n }\n }\n var len = res[i].length;\n switch (res[i][0]) {\n case \"z\":\n x = mx;\n y = my;\n break;\n case \"h\":\n x += +res[i][len - 1];\n break;\n case \"v\":\n y += +res[i][len - 1];\n break;\n default:\n x += +res[i][len - 2];\n y += +res[i][len - 1];\n }\n }\n res.toString = toString;\n pth.rel = pathClone(res);\n return res;\n }\n function pathToAbsolute(pathArray) {\n var pth = paths(pathArray);\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n if (!is(pathArray, \"array\") || !is(pathArray && pathArray[0], \"array\")) { // rough assumption\n pathArray = Snap.parsePathString(pathArray);\n }\n if (!pathArray || !pathArray.length) {\n return [[\"M\", 0, 0]];\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0,\n pa0;\n if (pathArray[0][0] == \"M\") {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [\"M\", x, y];\n }\n var crz = pathArray.length == 3 &&\n pathArray[0][0] == \"M\" &&\n pathArray[1][0].toUpperCase() == \"R\" &&\n pathArray[2][0].toUpperCase() == \"Z\";\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n if (pa0 != pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n switch (r[0]) {\n case \"A\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n case \"V\":\n r[1] = +pa[1] + y;\n break;\n case \"H\":\n r[1] = +pa[1] + x;\n break;\n case \"R\":\n var dots = [x, y].concat(pa.slice(1));\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n break;\n case \"O\":\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n break;\n case \"U\":\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n break;\n case \"M\":\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n }\n } else if (pa0 == \"R\") {\n dots = [x, y].concat(pa.slice(1));\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n r = [\"R\"].concat(pa.slice(-2));\n } else if (pa0 == \"O\") {\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n } else if (pa0 == \"U\") {\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n pa0 = pa0.toUpperCase();\n if (pa0 != \"O\") {\n switch (r[0]) {\n case \"Z\":\n x = +mx;\n y = +my;\n break;\n case \"H\":\n x = r[1];\n break;\n case \"V\":\n y = r[1];\n break;\n case \"M\":\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n }\n res.toString = toString;\n pth.abs = pathClone(res);\n return res;\n }\n function l2c(x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n }\n function q2c(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n }\n function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = Snap._.cacher(function (x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n return {x: X, y: Y};\n });\n if (!rx || !ry) {\n return [x1, y1, x2, y2, x2, y2];\n }\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n var cos = math.cos(PI / 180 * angle),\n sin = math.sin(PI / 180 * angle),\n x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n var df = f2 - f1;\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n df = f2 - f1;\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [x1, y1],\n m2 = [x1 + hx * s1, y1 - hy * c1],\n m3 = [x2 + hx * s2, y2 - hy * c2],\n m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n if (recursive) {\n return [m2, m3, m4].concat(res);\n } else {\n res = [m2, m3, m4].concat(res).join().split(\",\");\n var newres = [];\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n return newres;\n }\n }\n function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n return {\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n };\n }\n\n // Returns bounding box of cubic bezier curve.\n // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n // Original version: NISHIO Hirokazu\n // Modifications: https://github.com/timo22345\n function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length,\n jlen = j,\n mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n\n return {\n min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])},\n max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])}\n };\n }\n\n function path2curve(path, path2) {\n var pth = !path2 && paths(path);\n if (!path2 && pth.curve) {\n return pathClone(pth.curve);\n }\n var p = pathToAbsolute(path),\n p2 = path2 && pathToAbsolute(path2),\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n processPath = function (path, d, pcom) {\n var nx, ny;\n if (!path) {\n return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n }\n !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null);\n switch (path[0]) {\n case \"M\":\n d.X = path[1];\n d.Y = path[2];\n break;\n case \"A\":\n path = [\"C\"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));\n break;\n case \"S\":\n if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n }\n else { // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [\"C\", nx, ny].concat(path.slice(1));\n break;\n case \"T\":\n if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n }\n else { // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [\"C\"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n case \"Q\":\n d.qx = path[1];\n d.qy = path[2];\n path = [\"C\"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n case \"L\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], path[2]));\n break;\n case \"H\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], d.y));\n break;\n case \"V\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.x, path[1]));\n break;\n case \"Z\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.X, d.Y));\n break;\n }\n return path;\n },\n fixArc = function (pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n while (pi.length) {\n pcoms1[i] = \"A\"; // if created multiple C:s, their original seg is saved\n p2 && (pcoms2[i] = \"A\"); // the same as above\n pp.splice(i++, 0, [\"C\"].concat(pi.splice(0, 6)));\n }\n pp.splice(i, 1);\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n fixM = function (path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n pcoms1 = [], // path commands of original path p\n pcoms2 = [], // path commands of original path p2\n pfirst = \"\", // temporary holder for original path command\n pcom = \"\"; // holder for previous path command of original path\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n p[i] && (pfirst = p[i][0]); // save current path command\n\n if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n {\n pcoms1[i] = pfirst; // Save current path command\n i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom\n }\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n if (p2) { // the same procedures is done to p2\n p2[i] && (pfirst = p2[i][0]);\n if (pfirst != \"C\") {\n pcoms2[i] = pfirst;\n i && (pcom = pcoms2[i - 1]);\n }\n p2[i] = processPath(p2[i], attrs2, pcom);\n\n if (pcoms2[i] != \"A\" && pfirst == \"C\") {\n pcoms2[i] = \"C\";\n }\n\n fixArc(p2, i);\n }\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i],\n seg2 = p2 && p2[i],\n seglen = seg.length,\n seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n if (!p2) {\n pth.curve = pathClone(p);\n }\n return p2 ? [p, p2] : p;\n }\n function mapPath(path, matrix) {\n if (!matrix) {\n return path;\n }\n var x, y, i, j, ii, jj, pathi;\n path = path2curve(path);\n for (i = 0, ii = path.length; i < ii; i++) {\n pathi = path[i];\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\n x = matrix.x(pathi[j], pathi[j + 1]);\n y = matrix.y(pathi[j], pathi[j + 1]);\n pathi[j] = x;\n pathi[j + 1] = y;\n }\n }\n return path;\n }\n\n // http://schepers.cc/getting-to-the-point\n function catmullRom2bezier(crp, z) {\n var d = [];\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [\n {x: +crp[i - 2], y: +crp[i - 1]},\n {x: +crp[i], y: +crp[i + 1]},\n {x: +crp[i + 2], y: +crp[i + 3]},\n {x: +crp[i + 4], y: +crp[i + 5]}\n ];\n if (z) {\n if (!i) {\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n } else if (iLen - 4 == i) {\n p[3] = {x: +crp[0], y: +crp[1]};\n } else if (iLen - 2 == i) {\n p[2] = {x: +crp[0], y: +crp[1]};\n p[3] = {x: +crp[2], y: +crp[3]};\n }\n } else {\n if (iLen - 4 == i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {x: +crp[i], y: +crp[i + 1]};\n }\n }\n d.push([\"C\",\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\n (p[1].y + 6*p[2].y - p[3].y) / 6,\n p[2].x,\n p[2].y\n ]);\n }\n\n return d;\n }\n\n // export\n Snap.path = paths;\n\n /*\\\n * Snap.path.getTotalLength\n [ method ]\n **\n * Returns the length of the given path in pixels\n **\n - path (string) SVG path string\n **\n = (number) length\n \\*/\n Snap.path.getTotalLength = getTotalLength;\n /*\\\n * Snap.path.getPointAtLength\n [ method ]\n **\n * Returns the coordinates of the point located at the given length along the given path\n **\n - path (string) SVG path string\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n Snap.path.getPointAtLength = getPointAtLength;\n /*\\\n * Snap.path.getSubpath\n [ method ]\n **\n * Returns the subpath of a given path between given start and end lengths\n **\n - path (string) SVG path string\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n Snap.path.getSubpath = function (path, from, to) {\n if (this.getTotalLength(path) - to < 1e-6) {\n return getSubpathsAtLength(path, from).end;\n }\n var a = getSubpathsAtLength(path, to, 1);\n return from ? getSubpathsAtLength(a, from).end : a;\n };\n /*\\\n * Element.getTotalLength\n [ method ]\n **\n * Returns the length of the path in pixels (only works for `path` elements)\n = (number) length\n \\*/\n elproto.getTotalLength = function () {\n if (this.node.getTotalLength) {\n return this.node.getTotalLength();\n }\n };\n // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length?\n /*\\\n * Element.getPointAtLength\n [ method ]\n **\n * Returns coordinates of the point located at the given length on the given path (only works for `path` elements)\n **\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n elproto.getPointAtLength = function (length) {\n return getPointAtLength(this.attr(\"d\"), length);\n };\n // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear.\n /*\\\n * Element.getSubpath\n [ method ]\n **\n * Returns subpath of a given element from given start and end lengths (only works for `path` elements)\n **\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n elproto.getSubpath = function (from, to) {\n return Snap.path.getSubpath(this.attr(\"d\"), from, to);\n };\n Snap._.box = box;\n /*\\\n * Snap.path.findDotsAtSegment\n [ method ]\n **\n * Utility method\n **\n * Finds dot coordinates on the given cubic beziér curve at the given t\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n - t (number) position on the curve (0..1)\n = (object) point information in format:\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o m: {\n o x: (number) x coordinate of the left anchor,\n o y: (number) y coordinate of the left anchor\n o },\n o n: {\n o x: (number) x coordinate of the right anchor,\n o y: (number) y coordinate of the right anchor\n o },\n o start: {\n o x: (number) x coordinate of the start of the curve,\n o y: (number) y coordinate of the start of the curve\n o },\n o end: {\n o x: (number) x coordinate of the end of the curve,\n o y: (number) y coordinate of the end of the curve\n o },\n o alpha: (number) angle of the curve derivative at the point\n o }\n \\*/\n Snap.path.findDotsAtSegment = findDotsAtSegment;\n /*\\\n * Snap.path.bezierBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given cubic beziér curve\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n * or\n - bez (array) array of six points for beziér curve\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.bezierBBox = bezierBBox;\n /*\\\n * Snap.path.isPointInsideBBox\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside bounding box\n - bbox (string) bounding box\n - x (string) x coordinate of the point\n - y (string) y coordinate of the point\n = (boolean) `true` if point is inside\n \\*/\n Snap.path.isPointInsideBBox = isPointInsideBBox;\n Snap.closest = function (x, y, X, Y) {\n var r = 100,\n b = box(x - r / 2, y - r / 2, r, r),\n inside = [],\n getter = X[0].hasOwnProperty(\"x\") ? function (i) {\n return {\n x: X[i].x,\n y: X[i].y\n };\n } : function (i) {\n return {\n x: X[i],\n y: Y[i]\n };\n },\n found = 0;\n while (r <= 1e6 && !found) {\n for (var i = 0, ii = X.length; i < ii; i++) {\n var xy = getter(i);\n if (isPointInsideBBox(b, xy.x, xy.y)) {\n found++;\n inside.push(xy);\n break;\n }\n }\n if (!found) {\n r *= 2;\n b = box(x - r / 2, y - r / 2, r, r)\n }\n }\n if (r == 1e6) {\n return;\n }\n var len = Infinity,\n res;\n for (i = 0, ii = inside.length; i < ii; i++) {\n var l = Snap.len(x, y, inside[i].x, inside[i].y);\n if (len > l) {\n len = l;\n inside[i].len = l;\n res = inside[i];\n }\n }\n return res;\n };\n /*\\\n * Snap.path.isBBoxIntersect\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if two bounding boxes intersect\n - bbox1 (string) first bounding box\n - bbox2 (string) second bounding box\n = (boolean) `true` if bounding boxes intersect\n \\*/\n Snap.path.isBBoxIntersect = isBBoxIntersect;\n /*\\\n * Snap.path.intersection\n [ method ]\n **\n * Utility method\n **\n * Finds intersections of two paths\n - path1 (string) path string\n - path2 (string) path string\n = (array) dots of intersection\n o [\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o t1: (number) t value for segment of path1,\n o t2: (number) t value for segment of path2,\n o segment1: (number) order number for segment of path1,\n o segment2: (number) order number for segment of path2,\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1,\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\n o }\n o ]\n \\*/\n Snap.path.intersection = pathIntersection;\n Snap.path.intersectionNumber = pathIntersectionNumber;\n /*\\\n * Snap.path.isPointInside\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside a given closed path.\n *\n * Note: fill mode doesn’t affect the result of this method.\n - path (string) path string\n - x (number) x of the point\n - y (number) y of the point\n = (boolean) `true` if point is inside the path\n \\*/\n Snap.path.isPointInside = isPointInsidePath;\n /*\\\n * Snap.path.getBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given path\n - path (string) path string\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.getBBox = pathBBox;\n Snap.path.get = getPath;\n /*\\\n * Snap.path.toRelative\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into relative values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toRelative = pathToRelative;\n /*\\\n * Snap.path.toAbsolute\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into absolute values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toAbsolute = pathToAbsolute;\n /*\\\n * Snap.path.toCubic\n [ method ]\n **\n * Utility method\n **\n * Converts path to a new path where all segments are cubic beziér curves\n - pathString (string|array) path string or array of segments\n = (array) array of segments\n \\*/\n Snap.path.toCubic = path2curve;\n /*\\\n * Snap.path.map\n [ method ]\n **\n * Transform the path string with the given matrix\n - path (string) path string\n - matrix (object) see @Matrix\n = (string) transformed path string\n \\*/\n Snap.path.map = mapPath;\n Snap.path.toString = toString;\n Snap.path.clone = pathClone;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var mmax = Math.max,\n mmin = Math.min;\n\n // Set\n var Set = function (items) {\n this.items = [];\n\tthis.bindings = {};\n this.length = 0;\n this.type = \"set\";\n if (items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n if (items[i]) {\n this[this.items.length] = this.items[this.items.length] = items[i];\n this.length++;\n }\n }\n }\n },\n setproto = Set.prototype;\n /*\\\n * Set.push\n [ method ]\n **\n * Adds each argument to the current set\n = (object) original element\n \\*/\n setproto.push = function () {\n var item,\n len;\n for (var i = 0, ii = arguments.length; i < ii; i++) {\n item = arguments[i];\n if (item) {\n len = this.items.length;\n this[len] = this.items[len] = item;\n this.length++;\n }\n }\n return this;\n };\n /*\\\n * Set.pop\n [ method ]\n **\n * Removes last element and returns it\n = (object) element\n \\*/\n setproto.pop = function () {\n this.length && delete this[this.length--];\n return this.items.pop();\n };\n /*\\\n * Set.forEach\n [ method ]\n **\n * Executes given function for each element in the set\n *\n * If the function returns `false`, the loop stops running.\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Set object\n \\*/\n setproto.forEach = function (callback, thisArg) {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n if (callback.call(thisArg, this.items[i], i) === false) {\n return this;\n }\n }\n return this;\n };\n /*\\\n * Set.animate\n [ method ]\n **\n * Animates each element in set in sync.\n *\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n * or\n - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]`\n > Usage\n | // animate all elements in set to radius 10\n | set.animate({r: 10}, 500, mina.easein);\n | // or\n | // animate first element to radius 10, but second to radius 20 and in different time\n | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);\n = (Element) the current element\n \\*/\n setproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Snap._.Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = easing.dur;\n attrs = attrs.attr;\n }\n var args = arguments;\n if (Snap.is(attrs, \"array\") && Snap.is(args[args.length - 1], \"array\")) {\n var each = true;\n }\n var begin,\n handler = function () {\n if (begin) {\n this.b = begin;\n } else {\n begin = this.b;\n }\n },\n cb = 0,\n set = this,\n callbacker = callback && function () {\n if (++cb == set.length) {\n callback.call(this);\n }\n };\n return this.forEach(function (el, i) {\n eve.once(\"snap.animcreated.\" + el.id, handler);\n if (each) {\n args[i] && el.animate.apply(el, args[i]);\n } else {\n el.animate(attrs, ms, easing, callbacker);\n }\n });\n };\n /*\\\n * Set.remove\n [ method ]\n **\n * Removes all children of the set.\n *\n = (object) Set object\n \\*/\n setproto.remove = function () {\n while (this.length) {\n this.pop().remove();\n }\n return this;\n };\n /*\\\n * Set.bind\n [ method ]\n **\n * Specifies how to handle a specific attribute when applied\n * to a set.\n *\n **\n - attr (string) attribute name\n - callback (function) function to run\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n - eattr (string) attribute on the element to bind the attribute to\n = (object) Set object\n \\*/\n setproto.bind = function (attr, a, b) {\n var data = {};\n if (typeof a == \"function\") {\n this.bindings[attr] = a;\n } else {\n var aname = b || attr;\n this.bindings[attr] = function (v) {\n data[aname] = v;\n a.attr(data);\n };\n }\n return this;\n };\n /*\\\n * Set.attr\n [ method ]\n **\n * Equivalent of @Element.attr.\n = (object) Set object\n \\*/\n setproto.attr = function (value) {\n var unbound = {};\n for (var k in value) {\n if (this.bindings[k]) {\n this.bindings[k](value[k]);\n } else {\n unbound[k] = value[k];\n }\n }\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n this.items[i].attr(unbound);\n }\n return this;\n };\n /*\\\n * Set.clear\n [ method ]\n **\n * Removes all elements from the set\n \\*/\n setproto.clear = function () {\n while (this.length) {\n this.pop();\n }\n };\n /*\\\n * Set.splice\n [ method ]\n **\n * Removes range of elements from the set\n **\n - index (number) position of the deletion\n - count (number) number of element to remove\n - insertion… (object) #optional elements to insert\n = (object) set elements that were deleted\n \\*/\n setproto.splice = function (index, count, insertion) {\n index = index < 0 ? mmax(this.length + index, 0) : index;\n count = mmax(0, mmin(this.length - index, count));\n var tail = [],\n todel = [],\n args = [],\n i;\n for (i = 2; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n for (i = 0; i < count; i++) {\n todel.push(this[index + i]);\n }\n for (; i < this.length - index; i++) {\n tail.push(this[index + i]);\n }\n var arglen = args.length;\n for (i = 0; i < arglen + tail.length; i++) {\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n }\n i = this.items.length = this.length -= count - arglen;\n while (this[i]) {\n delete this[i++];\n }\n return new Set(todel);\n };\n /*\\\n * Set.exclude\n [ method ]\n **\n * Removes given element from the set\n **\n - element (object) element to remove\n = (boolean) `true` if object was found and removed from the set\n \\*/\n setproto.exclude = function (el) {\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n this.splice(i, 1);\n return true;\n }\n return false;\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Inserts set elements after given element.\n **\n - element (object) set will be inserted after this element\n = (object) Set object\n \\*/\n setproto.insertAfter = function (el) {\n var i = this.items.length;\n while (i--) {\n this.items[i].insertAfter(el);\n }\n return this;\n };\n /*\\\n * Set.getBBox\n [ method ]\n **\n * Union of all bboxes of the set. See @Element.getBBox.\n = (object) bounding box descriptor. See @Element.getBBox.\n \\*/\n setproto.getBBox = function () {\n var x = [],\n y = [],\n x2 = [],\n y2 = [];\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n var box = this.items[i].getBBox();\n x.push(box.x);\n y.push(box.y);\n x2.push(box.x + box.width);\n y2.push(box.y + box.height);\n }\n x = mmin.apply(0, x);\n y = mmin.apply(0, y);\n x2 = mmax.apply(0, x2);\n y2 = mmax.apply(0, y2);\n return {\n x: x,\n y: y,\n x2: x2,\n y2: y2,\n width: x2 - x,\n height: y2 - y,\n cx: x + (x2 - x) / 2,\n cy: y + (y2 - y) / 2\n };\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Creates a clone of the set.\n **\n = (object) New Set object\n \\*/\n setproto.clone = function (s) {\n s = new Set;\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n s.push(this.items[i].clone());\n }\n return s;\n };\n setproto.toString = function () {\n return \"Snap\\u2018s set\";\n };\n setproto.type = \"set\";\n // export\n /*\\\n * Snap.Set\n [ property ]\n **\n * Set constructor.\n \\*/\n Snap.Set = Set;\n /*\\\n * Snap.set\n [ method ]\n **\n * Creates a set and fills it with list of arguments.\n **\n = (object) New Set object\n | var r = paper.rect(0, 0, 10, 10),\n | s1 = Snap.set(), // empty set\n | s2 = Snap.set(r, paper.circle(100, 100, 20)); // prefilled set\n \\*/\n Snap.set = function () {\n var set = new Set;\n if (arguments.length) {\n set.push.apply(set, Array.prototype.slice.call(arguments, 0));\n }\n return set;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var names = {},\n reUnit = /[%a-z]+$/i,\n Str = String;\n names.stroke = names.fill = \"colour\";\n function getEmpty(item) {\n var l = item[0];\n switch (l.toLowerCase()) {\n case \"t\": return [l, 0, 0];\n case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n case \"r\": if (item.length == 4) {\n return [l, 0, item[2], item[3]];\n } else {\n return [l, 0];\n }\n case \"s\": if (item.length == 5) {\n return [l, 1, 1, item[3], item[4]];\n } else if (item.length == 3) {\n return [l, 1, 1];\n } else {\n return [l, 1];\n }\n }\n }\n function equaliseTransform(t1, t2, getBBox) {\n t1 = t1 || new Snap.Matrix;\n t2 = t2 || new Snap.Matrix;\n t1 = Snap.parseTransformString(t1.toTransformString()) || [];\n t2 = Snap.parseTransformString(t2.toTransformString()) || [];\n var maxlength = Math.max(t1.length, t2.length),\n from = [],\n to = [],\n i = 0, j, jj,\n tt1, tt2;\n for (; i < maxlength; i++) {\n tt1 = t1[i] || getEmpty(t2[i]);\n tt2 = t2[i] || getEmpty(tt1);\n if (tt1[0] != tt2[0] ||\n tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3]) ||\n tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])\n ) {\n t1 = Snap._.transform2matrix(t1, getBBox());\n t2 = Snap._.transform2matrix(t2, getBBox());\n from = [[\"m\", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]];\n to = [[\"m\", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]];\n break;\n }\n from[i] = [];\n to[i] = [];\n for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) {\n j in tt1 && (from[i][j] = tt1[j]);\n j in tt2 && (to[i][j] = tt2[j]);\n }\n }\n return {\n from: path2array(from),\n to: path2array(to),\n f: getPath(from)\n };\n }\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n function getViewBox(val) {\n return val.join(\" \");\n }\n function getColour(clr) {\n return Snap.rgb(clr[0], clr[1], clr[2], clr[3]);\n }\n function getPath(path) {\n var k = 0, i, ii, j, jj, out, a, b = [];\n for (i = 0, ii = path.length; i < ii; i++) {\n out = \"[\";\n a = ['\"' + path[i][0] + '\"'];\n for (j = 1, jj = path[i].length; j < jj; j++) {\n a[j] = \"val[\" + k++ + \"]\";\n }\n out += a + \"]\";\n b[i] = out;\n }\n return Function(\"val\", \"return Snap.path.toString.call([\" + b + \"])\");\n }\n function path2array(path) {\n var out = [];\n for (var i = 0, ii = path.length; i < ii; i++) {\n for (var j = 1, jj = path[i].length; j < jj; j++) {\n out.push(path[i][j]);\n }\n }\n return out;\n }\n function isNumeric(obj) {\n return isFinite(obj);\n }\n function arrayEqual(arr1, arr2) {\n if (!Snap.is(arr1, \"array\") || !Snap.is(arr2, \"array\")) {\n return false;\n }\n return arr1.toString() == arr2.toString();\n }\n Element.prototype.equal = function (name, b) {\n return eve(\"snap.util.equal\", this, name, b).firstDefined();\n };\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this;\n if (names[name] == \"colour\") {\n A = Snap.color(a);\n B = Snap.color(b);\n return {\n from: [A.r, A.g, A.b, A.opacity],\n to: [B.r, B.g, B.b, B.opacity],\n f: getColour\n };\n }\n if (name == \"viewBox\") {\n A = this.attr(name).vb.split(\" \").map(Number);\n B = b.split(\" \").map(Number);\n return {\n from: A,\n to: B,\n f: getViewBox\n };\n }\n if (name == \"transform\" || name == \"gradientTransform\" || name == \"patternTransform\") {\n if (typeof b == \"string\") {\n b = Str(b).replace(/\\.{3}|\\u2026/g, a);\n }\n a = this.matrix;\n if (!Snap._.rgTransform.test(b)) {\n b = Snap._.transform2matrix(Snap._.svgTransform2string(b), this.getBBox());\n } else {\n b = Snap._.transform2matrix(b, this.getBBox());\n }\n return equaliseTransform(a, b, function () {\n return el.getBBox(1);\n });\n }\n if (name == \"d\" || name == \"path\") {\n A = Snap.path.toCubic(a, b);\n return {\n from: path2array(A[0]),\n to: path2array(A[1]),\n f: getPath(A[0])\n };\n }\n if (name == \"points\") {\n A = Str(a).split(Snap._.separator);\n B = Str(b).split(Snap._.separator);\n return {\n from: A,\n to: B,\n f: function (val) { return val; }\n };\n }\n if (isNumeric(a) && isNumeric(b)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getNumber\n };\n }\n var aUnit = a.match(reUnit),\n bUnit = Str(b).match(reUnit);\n if (aUnit && arrayEqual(aUnit, bUnit)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getUnit(aUnit)\n };\n } else {\n return {\n from: this.asPX(name),\n to: this.asPX(name, b),\n f: getNumber\n };\n }\n });\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n has = \"hasOwnProperty\",\n supportsTouch = \"createTouch\" in glob.doc,\n events = [\n \"click\", \"dblclick\", \"mousedown\", \"mousemove\", \"mouseout\",\n \"mouseover\", \"mouseup\", \"touchstart\", \"touchmove\", \"touchend\",\n \"touchcancel\"\n ],\n touchMap = {\n mousedown: \"touchstart\",\n mousemove: \"touchmove\",\n mouseup: \"touchend\"\n },\n getScroll = function (xy, el) {\n var name = xy == \"y\" ? \"scrollTop\" : \"scrollLeft\",\n doc = el && el.node ? el.node.ownerDocument : glob.doc;\n return doc[name in doc.documentElement ? \"documentElement\" : \"body\"][name];\n },\n preventDefault = function () {\n this.returnValue = false;\n },\n preventTouch = function () {\n return this.originalEvent.preventDefault();\n },\n stopPropagation = function () {\n this.cancelBubble = true;\n },\n stopTouch = function () {\n return this.originalEvent.stopPropagation();\n },\n addEvent = function (obj, type, fn, element) {\n var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,\n f = function (e) {\n var scrollY = getScroll(\"y\", element),\n scrollX = getScroll(\"x\", element);\n if (supportsTouch && touchMap[has](type)) {\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) {\n var olde = e;\n e = e.targetTouches[i];\n e.originalEvent = olde;\n e.preventDefault = preventTouch;\n e.stopPropagation = stopTouch;\n break;\n }\n }\n }\n var x = e.clientX + scrollX,\n y = e.clientY + scrollY;\n return fn.call(element, e, x, y);\n };\n\n if (type !== realName) {\n obj.addEventListener(type, f, false);\n }\n\n obj.addEventListener(realName, f, false);\n\n return function () {\n if (type !== realName) {\n obj.removeEventListener(type, f, false);\n }\n\n obj.removeEventListener(realName, f, false);\n return true;\n };\n },\n drag = [],\n dragMove = function (e) {\n var x = e.clientX,\n y = e.clientY,\n scrollY = getScroll(\"y\"),\n scrollX = getScroll(\"x\"),\n dragi,\n j = drag.length;\n while (j--) {\n dragi = drag[j];\n if (supportsTouch) {\n var i = e.touches && e.touches.length,\n touch;\n while (i--) {\n touch = e.touches[i];\n if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) {\n x = touch.clientX;\n y = touch.clientY;\n (e.originalEvent ? e.originalEvent : e).preventDefault();\n break;\n }\n }\n } else {\n e.preventDefault();\n }\n var node = dragi.el.node,\n o,\n next = node.nextSibling,\n parent = node.parentNode,\n display = node.style.display;\n // glob.win.opera && parent.removeChild(node);\n // node.style.display = \"none\";\n // o = dragi.el.paper.getElementByPoint(x, y);\n // node.style.display = display;\n // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n // o && eve(\"snap.drag.over.\" + dragi.el.id, dragi.el, o);\n x += scrollX;\n y += scrollY;\n eve(\"snap.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n }\n },\n dragUp = function (e) {\n Snap.unmousemove(dragMove).unmouseup(dragUp);\n var i = drag.length,\n dragi;\n while (i--) {\n dragi = drag[i];\n dragi.el._drag = {};\n eve(\"snap.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n eve.off(\"snap.drag.*.\" + dragi.el.id);\n }\n drag = [];\n };\n /*\\\n * Element.click\n [ method ]\n **\n * Adds a click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unclick\n [ method ]\n **\n * Removes a click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.dblclick\n [ method ]\n **\n * Adds a double click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.undblclick\n [ method ]\n **\n * Removes a double click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousedown\n [ method ]\n **\n * Adds a mousedown event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousedown\n [ method ]\n **\n * Removes a mousedown event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousemove\n [ method ]\n **\n * Adds a mousemove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousemove\n [ method ]\n **\n * Removes a mousemove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseout\n [ method ]\n **\n * Adds a mouseout event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseout\n [ method ]\n **\n * Removes a mouseout event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseover\n [ method ]\n **\n * Adds a mouseover event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseover\n [ method ]\n **\n * Removes a mouseover event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseup\n [ method ]\n **\n * Adds a mouseup event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseup\n [ method ]\n **\n * Removes a mouseup event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchstart\n [ method ]\n **\n * Adds a touchstart event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchstart\n [ method ]\n **\n * Removes a touchstart event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchmove\n [ method ]\n **\n * Adds a touchmove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchmove\n [ method ]\n **\n * Removes a touchmove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchend\n [ method ]\n **\n * Adds a touchend event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchend\n [ method ]\n **\n * Removes a touchend event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchcancel\n [ method ]\n **\n * Adds a touchcancel event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchcancel\n [ method ]\n **\n * Removes a touchcancel event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n for (var i = events.length; i--;) {\n (function (eventName) {\n Snap[eventName] = elproto[eventName] = function (fn, scope) {\n if (Snap.is(fn, \"function\")) {\n this.events = this.events || [];\n this.events.push({\n name: eventName,\n f: fn,\n unbind: addEvent(this.node || document, eventName, fn, scope || this)\n });\n } else {\n for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) {\n try {\n this.events[i].f.call(this);\n } catch (e) {}\n }\n }\n return this;\n };\n Snap[\"un\" + eventName] =\n elproto[\"un\" + eventName] = function (fn) {\n var events = this.events || [],\n l = events.length;\n while (l--) if (events[l].name == eventName &&\n (events[l].f == fn || !fn)) {\n events[l].unbind();\n events.splice(l, 1);\n !events.length && delete this.events;\n return this;\n }\n return this;\n };\n })(events[i]);\n }\n /*\\\n * Element.hover\n [ method ]\n **\n * Adds hover event handlers to the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n - icontext (object) #optional context for hover in handler\n - ocontext (object) #optional context for hover out handler\n = (object) @Element\n \\*/\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n };\n /*\\\n * Element.unhover\n [ method ]\n **\n * Removes hover event handlers from the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n = (object) @Element\n \\*/\n elproto.unhover = function (f_in, f_out) {\n return this.unmouseover(f_in).unmouseout(f_out);\n };\n var draggable = [];\n // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture.\n // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from?\n // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason.\n // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start. on start, drag.end. on end and drag.move. on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID?\n /*\\\n * Element.drag\n [ method ]\n **\n * Adds event handlers for an element's drag gesture\n **\n - onmove (function) handler for moving\n - onstart (function) handler for drag start\n - onend (function) handler for drag end\n - mcontext (object) #optional context for moving handler\n - scontext (object) #optional context for drag start handler\n - econtext (object) #optional context for drag end handler\n * Additionaly following `drag` events are triggered: `drag.start.` on start, \n * `drag.end.` on end and `drag.move.` on every move. When element is dragged over another element \n * `drag.over.` fires as well.\n *\n * Start event and start handler are called in specified context or in context of the element with following parameters:\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * Move event and move handler are called in specified context or in context of the element with following parameters:\n o dx (number) shift by x from the start point\n o dy (number) shift by y from the start point\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * End event and end handler are called in specified context or in context of the element with following parameters:\n o event (object) DOM event object\n = (object) @Element\n \\*/\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n var el = this;\n if (!arguments.length) {\n var origTransform;\n return el.drag(function (dx, dy) {\n this.attr({\n transform: origTransform + (origTransform ? \"T\" : \"t\") + [dx, dy]\n });\n }, function () {\n origTransform = this.transform().local;\n });\n }\n function start(e, x, y) {\n (e.originalEvent || e).preventDefault();\n el._drag.x = x;\n el._drag.y = y;\n el._drag.id = e.identifier;\n !drag.length && Snap.mousemove(dragMove).mouseup(dragUp);\n drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n onstart && eve.on(\"snap.drag.start.\" + el.id, onstart);\n onmove && eve.on(\"snap.drag.move.\" + el.id, onmove);\n onend && eve.on(\"snap.drag.end.\" + el.id, onend);\n eve(\"snap.drag.start.\" + el.id, start_scope || move_scope || el, x, y, e);\n }\n function init(e, x, y) {\n eve(\"snap.draginit.\" + el.id, el, e, x, y);\n }\n eve.on(\"snap.draginit.\" + el.id, start);\n el._drag = {};\n draggable.push({el: el, start: start, init: init});\n el.mousedown(init);\n return el;\n };\n /*\n * Element.onDragOver\n [ method ]\n **\n * Shortcut to assign event handler for `drag.over.` event, where `id` is the element's `id` (see @Element.id)\n - f (function) handler for event, first argument would be the element you are dragging over\n \\*/\n // elproto.onDragOver = function (f) {\n // f ? eve.on(\"snap.drag.over.\" + this.id, f) : eve.unbind(\"snap.drag.over.\" + this.id);\n // };\n /*\\\n * Element.undrag\n [ method ]\n **\n * Removes all drag event handlers from the given element\n \\*/\n elproto.undrag = function () {\n var i = draggable.length;\n while (i--) if (draggable[i].el == this) {\n this.unmousedown(draggable[i].init);\n draggable.splice(i, 1);\n eve.unbind(\"snap.drag.*.\" + this.id);\n eve.unbind(\"snap.draginit.\" + this.id);\n }\n !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp);\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n pproto = Paper.prototype,\n rgurl = /^\\s*url\\((.+)\\)/,\n Str = String,\n $ = Snap._.$;\n Snap.filter = {};\n /*\\\n * Paper.filter\n [ method ]\n **\n * Creates a `` element\n **\n - filstr (string) SVG fragment of filter provided as a string\n = (object) @Element\n * Note: It is recommended to use filters embedded into the page inside an empty SVG element.\n > Usage\n | var f = paper.filter(''),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n pproto.filter = function (filstr) {\n var paper = this;\n if (paper.type != \"svg\") {\n paper = paper.paper;\n }\n var f = Snap.parse(Str(filstr)),\n id = Snap._.id(),\n width = paper.node.offsetWidth,\n height = paper.node.offsetHeight,\n filter = $(\"filter\");\n $(filter, {\n id: id,\n filterUnits: \"userSpaceOnUse\"\n });\n filter.appendChild(f.node);\n paper.defs.appendChild(filter);\n return new Element(filter);\n };\n\n eve.on(\"snap.util.getattr.filter\", function () {\n eve.stop();\n var p = $(this.node, \"filter\");\n if (p) {\n var match = Str(p).match(rgurl);\n return match && Snap.select(match[1]);\n }\n });\n eve.on(\"snap.util.attr.filter\", function (value) {\n if (value instanceof Element && value.type == \"filter\") {\n eve.stop();\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n id = value.id;\n }\n $(this.node, {\n filter: Snap.url(id)\n });\n }\n if (!value || value == \"none\") {\n eve.stop();\n this.node.removeAttribute(\"filter\");\n }\n });\n /*\\\n * Snap.filter.blur\n [ method ]\n **\n * Returns an SVG markup string for the blur filter\n **\n - x (number) amount of horizontal blur, in pixels\n - y (number) #optional amount of vertical blur, in pixels\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.blur(5, 10)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.blur = function (x, y) {\n if (x == null) {\n x = 2;\n }\n var def = y == null ? x : [x, y];\n return Snap.format('\\', {\n def: def\n });\n };\n Snap.filter.blur.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.shadow\n [ method ]\n **\n * Returns an SVG markup string for the shadow filter\n **\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - blur (number) #optional amount of blur\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * which makes blur default to `4`. Or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - opacity (number) #optional `0..1` opacity of the shadow\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.shadow(0, 2, .3)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.shadow = function (dx, dy, blur, color, opacity) {\n if (opacity == null) {\n if (color == null) {\n opacity = blur;\n blur = 4;\n color = \"#000\";\n } else {\n opacity = color;\n color = blur;\n blur = 4;\n }\n }\n if (blur == null) {\n blur = 4;\n }\n if (opacity == null) {\n opacity = 1;\n }\n if (dx == null) {\n dx = 0;\n dy = 2;\n }\n if (dy == null) {\n dy = dx;\n }\n color = Snap.color(color);\n return Snap.format('', {\n color: color,\n dx: dx,\n dy: dy,\n blur: blur,\n opacity: opacity\n });\n };\n Snap.filter.shadow.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.grayscale\n [ method ]\n **\n * Returns an SVG markup string for the grayscale filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.grayscale = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.2126 + 0.7874 * (1 - amount),\n b: 0.7152 - 0.7152 * (1 - amount),\n c: 0.0722 - 0.0722 * (1 - amount),\n d: 0.2126 - 0.2126 * (1 - amount),\n e: 0.7152 + 0.2848 * (1 - amount),\n f: 0.0722 - 0.0722 * (1 - amount),\n g: 0.2126 - 0.2126 * (1 - amount),\n h: 0.0722 + 0.9278 * (1 - amount)\n });\n };\n Snap.filter.grayscale.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.sepia\n [ method ]\n **\n * Returns an SVG markup string for the sepia filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.sepia = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.393 + 0.607 * (1 - amount),\n b: 0.769 - 0.769 * (1 - amount),\n c: 0.189 - 0.189 * (1 - amount),\n d: 0.349 - 0.349 * (1 - amount),\n e: 0.686 + 0.314 * (1 - amount),\n f: 0.168 - 0.168 * (1 - amount),\n g: 0.272 - 0.272 * (1 - amount),\n h: 0.534 - 0.534 * (1 - amount),\n i: 0.131 + 0.869 * (1 - amount)\n });\n };\n Snap.filter.sepia.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.saturate\n [ method ]\n **\n * Returns an SVG markup string for the saturate filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.saturate = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: 1 - amount\n });\n };\n Snap.filter.saturate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.hueRotate\n [ method ]\n **\n * Returns an SVG markup string for the hue-rotate filter\n **\n - angle (number) angle of rotation\n = (string) filter representation\n \\*/\n Snap.filter.hueRotate = function (angle) {\n angle = angle || 0;\n return Snap.format('', {\n angle: angle\n });\n };\n Snap.filter.hueRotate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.invert\n [ method ]\n **\n * Returns an SVG markup string for the invert filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.invert = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n// \n return Snap.format('', {\n amount: amount,\n amount2: 1 - amount\n });\n };\n Snap.filter.invert.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.brightness\n [ method ]\n **\n * Returns an SVG markup string for the brightness filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.brightness = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount\n });\n };\n Snap.filter.brightness.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.contrast\n [ method ]\n **\n * Returns an SVG markup string for the contrast filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.contrast = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount,\n amount2: .5 - amount / 2\n });\n };\n Snap.filter.contrast.toString = function () {\n return this();\n };\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var box = Snap._.box,\n is = Snap.is,\n firstLetter = /^[^a-z]*([tbmlrc])/i,\n toString = function () {\n return \"T\" + this.dx + \",\" + this.dy;\n };\n /*\\\n * Element.getAlign\n [ method ]\n **\n * Returns shift needed to align the element relatively to given element.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string\n > Usage\n | el.transform(el.getAlign(el2, \"top\"));\n * or\n | var dy = el.getAlign(el2, \"top\").dy;\n \\*/\n Element.prototype.getAlign = function (el, way) {\n if (way == null && is(el, \"string\")) {\n way = el;\n el = null;\n }\n el = el || this.paper;\n var bx = el.getBBox ? el.getBBox() : box(el),\n bb = this.getBBox(),\n out = {};\n way = way && way.match(firstLetter);\n way = way ? way[1].toLowerCase() : \"c\";\n switch (way) {\n case \"t\":\n out.dx = 0;\n out.dy = bx.y - bb.y;\n break;\n case \"b\":\n out.dx = 0;\n out.dy = bx.y2 - bb.y2;\n break;\n case \"m\":\n out.dx = 0;\n out.dy = bx.cy - bb.cy;\n break;\n case \"l\":\n out.dx = bx.x - bb.x;\n out.dy = 0;\n break;\n case \"r\":\n out.dx = bx.x2 - bb.x2;\n out.dy = 0;\n break;\n default:\n out.dx = bx.cx - bb.cx;\n out.dy = 0;\n break;\n }\n out.toString = toString;\n return out;\n };\n /*\\\n * Element.align\n [ method ]\n **\n * Aligns the element relatively to given one via transformation.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object) this element\n > Usage\n | el.align(el2, \"top\");\n * or\n | el.align(\"middle\");\n \\*/\n Element.prototype.align = function (el, way) {\n return this.transform(\"...\" + this.getAlign(el, way));\n };\n});\n\n// Copyright (c) 2016 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n has = \"hasOwnProperty\";\n function slice(from, to, f) {\n return function (arr) {\n var res = arr.slice(from, to);\n if (res.length == 1) {\n res = res[0];\n }\n return f ? f(res) : res;\n };\n }\n var Animation = function (attr, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n this.attr = attr;\n this.dur = ms;\n easing && (this.easing = easing);\n callback && (this.callback = callback);\n };\n Snap._.Animation = Animation;\n /*\\\n * Snap.animation\n [ method ]\n **\n * Creates an animation object\n **\n - attr (object) attributes of final destination\n - duration (number) duration of the animation, in milliseconds\n - easing (function) #optional one of easing functions of @mina or custom one\n - callback (function) #optional callback function that fires when animation ends\n = (object) animation object\n \\*/\n Snap.animation = function (attr, ms, easing, callback) {\n return new Animation(attr, ms, easing, callback);\n };\n /*\\\n * Element.inAnim\n [ method ]\n **\n * Returns a set of animations that may be able to manipulate the current element\n **\n = (object) in format:\n o {\n o anim (object) animation object,\n o mina (object) @mina object,\n o curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n \\*/\n elproto.inAnim = function () {\n var el = this,\n res = [];\n for (var id in el.anims) if (el.anims[has](id)) {\n (function (a) {\n res.push({\n anim: new Animation(a._attrs, a.dur, a.easing, a._callback),\n mina: a,\n curStatus: a.status(),\n status: function (val) {\n return a.status(val);\n },\n stop: function () {\n a.stop();\n }\n });\n }(el.anims[id]));\n }\n return res;\n };\n /*\\\n * Snap.animate\n [ method ]\n **\n * Runs generic animation of one number into another with a caring function\n **\n - from (number|array) number or array of numbers\n - to (number|array) number or array of numbers\n - setter (function) caring function that accepts one number argument\n - duration (number) duration, in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function to execute when animation ends\n = (object) animation object in @mina format\n o {\n o id (string) animation id, consider it read-only,\n o duration (function) gets or sets the duration of the animation,\n o easing (function) easing,\n o speed (function) gets or sets the speed of the animation,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n | var rect = Snap().rect(0, 0, 10, 10);\n | Snap.animate(0, 10, function (val) {\n | rect.attr({\n | x: val\n | });\n | }, 1000);\n | // in given context is equivalent to\n | rect.animate({x: 10}, 1000);\n \\*/\n Snap.animate = function (from, to, setter, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n var now = mina.time(),\n anim = mina(from, to, now, now + ms, mina.time, setter, easing);\n callback && eve.once(\"mina.finish.\" + anim.id, callback);\n return anim;\n };\n /*\\\n * Element.stop\n [ method ]\n **\n * Stops all the animations for the current element\n **\n = (Element) the current element\n \\*/\n elproto.stop = function () {\n var anims = this.inAnim();\n for (var i = 0, ii = anims.length; i < ii; i++) {\n anims[i].stop();\n }\n return this;\n };\n /*\\\n * Element.animate\n [ method ]\n **\n * Animates the given attributes of the element\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n = (Element) the current element\n \\*/\n elproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = attrs.dur;\n attrs = attrs.attr;\n }\n var fkeys = [], tkeys = [], keys = {}, from, to, f, eq,\n el = this;\n for (var key in attrs) if (attrs[has](key)) {\n if (el.equal) {\n eq = el.equal(key, Str(attrs[key]));\n from = eq.from;\n to = eq.to;\n f = eq.f;\n } else {\n from = +el.attr(key);\n to = +attrs[key];\n }\n var len = is(from, \"array\") ? from.length : 1;\n keys[key] = slice(fkeys.length, fkeys.length + len, f);\n fkeys = fkeys.concat(from);\n tkeys = tkeys.concat(to);\n }\n var now = mina.time(),\n anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) {\n var attr = {};\n for (var key in keys) if (keys[has](key)) {\n attr[key] = keys[key](val);\n }\n el.attr(attr);\n }, easing);\n el.anims[anim.id] = anim;\n anim._attrs = attrs;\n anim._callback = callback;\n eve(\"snap.animcreated.\" + el.id, anim);\n eve.once(\"mina.finish.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n callback && callback.call(el);\n });\n eve.once(\"mina.stop.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n });\n return el;\n };\n});\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n // Colours are from https://www.materialui.co\n var red = \"#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000\",\n pink = \"#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162\",\n purple = \"#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF\",\n deeppurple = \"#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA\",\n indigo = \"#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE\",\n blue = \"#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF\",\n lightblue = \"#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA\",\n cyan = \"#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4\",\n teal = \"#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5\",\n green = \"#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853\",\n lightgreen = \"#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17\",\n lime = \"#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00\",\n yellow = \"#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600\",\n amber = \"#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00\",\n orange = \"#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00\",\n deeporange = \"#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00\",\n brown = \"#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723\",\n grey = \"#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121\",\n bluegrey = \"#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238\";\n /*\\\n * Snap.mui\n [ property ]\n **\n * Contain Material UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.mui.deeppurple, stroke: Snap.mui.amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.mui = {};\n /*\\\n * Snap.flat\n [ property ]\n **\n * Contain Flat UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.flat.carrot, stroke: Snap.flat.wetasphalt});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.flat = {};\n function saveColor(colors) {\n colors = colors.split(/(?=#)/);\n var color = new String(colors[5]);\n color[50] = colors[0];\n color[100] = colors[1];\n color[200] = colors[2];\n color[300] = colors[3];\n color[400] = colors[4];\n color[500] = colors[5];\n color[600] = colors[6];\n color[700] = colors[7];\n color[800] = colors[8];\n color[900] = colors[9];\n if (colors[10]) {\n color.A100 = colors[10];\n color.A200 = colors[11];\n color.A400 = colors[12];\n color.A700 = colors[13];\n }\n return color;\n }\n Snap.mui.red = saveColor(red);\n Snap.mui.pink = saveColor(pink);\n Snap.mui.purple = saveColor(purple);\n Snap.mui.deeppurple = saveColor(deeppurple);\n Snap.mui.indigo = saveColor(indigo);\n Snap.mui.blue = saveColor(blue);\n Snap.mui.lightblue = saveColor(lightblue);\n Snap.mui.cyan = saveColor(cyan);\n Snap.mui.teal = saveColor(teal);\n Snap.mui.green = saveColor(green);\n Snap.mui.lightgreen = saveColor(lightgreen);\n Snap.mui.lime = saveColor(lime);\n Snap.mui.yellow = saveColor(yellow);\n Snap.mui.amber = saveColor(amber);\n Snap.mui.orange = saveColor(orange);\n Snap.mui.deeporange = saveColor(deeporange);\n Snap.mui.brown = saveColor(brown);\n Snap.mui.grey = saveColor(grey);\n Snap.mui.bluegrey = saveColor(bluegrey);\n Snap.flat.turquoise = \"#1abc9c\";\n Snap.flat.greensea = \"#16a085\";\n Snap.flat.sunflower = \"#f1c40f\";\n Snap.flat.orange = \"#f39c12\";\n Snap.flat.emerland = \"#2ecc71\";\n Snap.flat.nephritis = \"#27ae60\";\n Snap.flat.carrot = \"#e67e22\";\n Snap.flat.pumpkin = \"#d35400\";\n Snap.flat.peterriver = \"#3498db\";\n Snap.flat.belizehole = \"#2980b9\";\n Snap.flat.alizarin = \"#e74c3c\";\n Snap.flat.pomegranate = \"#c0392b\";\n Snap.flat.amethyst = \"#9b59b6\";\n Snap.flat.wisteria = \"#8e44ad\";\n Snap.flat.clouds = \"#ecf0f1\";\n Snap.flat.silver = \"#bdc3c7\";\n Snap.flat.wetasphalt = \"#34495e\";\n Snap.flat.midnightblue = \"#2c3e50\";\n Snap.flat.concrete = \"#95a5a6\";\n Snap.flat.asbestos = \"#7f8c8d\";\n /*\\\n * Snap.importMUIColors\n [ method ]\n **\n * Imports Material UI colours into global object.\n | Snap.importMUIColors();\n | Snap().rect(0, 0, 10, 10).attr({fill: deeppurple, stroke: amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.importMUIColors = function () {\n for (var color in Snap.mui) {\n if (Snap.mui.hasOwnProperty(color)) {\n window[color] = Snap.mui[color];\n }\n }\n };\n});\n\nmodule.exports = Snap\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {};\nexports[\"default\"] = void 0;\n\nvar Utils = _interopRequireWildcard(require(\"./utils\"));\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar VanillaSwipe = /*#__PURE__*/function () {\n function VanillaSwipe(props) {\n _classCallCheck(this, VanillaSwipe);\n\n _defineProperty(this, \"state\", void 0);\n\n _defineProperty(this, \"props\", void 0);\n\n this.state = Utils.getInitialState();\n this.props = Utils.getInitialProps(props);\n this.handleSwipeStart = this.handleSwipeStart.bind(this);\n this.handleSwipeMove = this.handleSwipeMove.bind(this);\n this.handleSwipeEnd = this.handleSwipeEnd.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n }\n\n _createClass(VanillaSwipe, [{\n key: \"init\",\n value: function init() {\n this.setupTouchListeners();\n this.setupMouseListeners();\n }\n }, {\n key: \"update\",\n value: function update(props) {\n var prevProps = this.props;\n var nextProps = Object.assign({}, prevProps, props);\n\n if (prevProps.element !== nextProps.element || prevProps.target !== nextProps.target) {\n this.destroy();\n this.props = nextProps;\n this.init();\n return;\n }\n\n this.props = nextProps;\n\n if (prevProps.mouseTrackingEnabled !== nextProps.mouseTrackingEnabled || prevProps.preventTrackingOnMouseleave !== nextProps.preventTrackingOnMouseleave) {\n this.cleanupMouseListeners();\n nextProps.mouseTrackingEnabled ? this.setupMouseListeners() : this.cleanupMouseListeners();\n }\n\n if (prevProps.touchTrackingEnabled !== nextProps.touchTrackingEnabled) {\n this.cleanupTouchListeners();\n nextProps.touchTrackingEnabled ? this.setupTouchListeners() : this.cleanupTouchListeners();\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.cleanupMouseListeners();\n this.cleanupTouchListeners();\n this.state = Utils.getInitialState();\n this.props = Utils.getInitialProps();\n }\n }, {\n key: \"setupTouchListeners\",\n value: function setupTouchListeners() {\n var _this$props = this.props,\n element = _this$props.element,\n target = _this$props.target,\n touchTrackingEnabled = _this$props.touchTrackingEnabled;\n\n if (element && touchTrackingEnabled) {\n var listener = target || element;\n var isPassiveSupported = Utils.checkIsPassiveSupported();\n var options = Utils.getOptions(isPassiveSupported);\n listener.addEventListener('touchstart', this.handleSwipeStart, options);\n listener.addEventListener('touchmove', this.handleSwipeMove, options);\n listener.addEventListener('touchend', this.handleSwipeEnd, options);\n }\n }\n }, {\n key: \"cleanupTouchListeners\",\n value: function cleanupTouchListeners() {\n var _this$props2 = this.props,\n element = _this$props2.element,\n target = _this$props2.target;\n var listener = target || element;\n\n if (listener) {\n listener.removeEventListener('touchstart', this.handleSwipeStart);\n listener.removeEventListener('touchmove', this.handleSwipeMove);\n listener.removeEventListener('touchend', this.handleSwipeEnd);\n }\n }\n }, {\n key: \"setupMouseListeners\",\n value: function setupMouseListeners() {\n var _this$props3 = this.props,\n element = _this$props3.element,\n mouseTrackingEnabled = _this$props3.mouseTrackingEnabled,\n preventTrackingOnMouseleave = _this$props3.preventTrackingOnMouseleave;\n\n if (mouseTrackingEnabled && element) {\n element.addEventListener('mousedown', this.handleMouseDown);\n element.addEventListener('mousemove', this.handleMouseMove);\n element.addEventListener('mouseup', this.handleMouseUp);\n\n if (preventTrackingOnMouseleave) {\n element.addEventListener('mouseleave', this.handleMouseLeave);\n }\n }\n }\n }, {\n key: \"cleanupMouseListeners\",\n value: function cleanupMouseListeners() {\n var element = this.props.element;\n\n if (element) {\n element.removeEventListener('mousedown', this.handleMouseDown);\n element.removeEventListener('mousemove', this.handleMouseMove);\n element.removeEventListener('mouseup', this.handleMouseUp);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n }\n }\n }, {\n key: \"getEventData\",\n value: function getEventData(e) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n directionDelta: 0\n };\n var rotationAngle = this.props.rotationAngle;\n var directionDelta = options.directionDelta;\n var movingPosition = Utils.calculateMovingPosition(e);\n var rotatePosition = Utils.rotateByAngle(movingPosition, rotationAngle);\n return Utils.calculatePosition(this.state, {\n rotatePosition: rotatePosition,\n directionDelta: directionDelta\n });\n }\n }, {\n key: \"handleSwipeStart\",\n value: function handleSwipeStart(e) {\n if (Utils.checkIsMoreThanSingleTouches(e)) return;\n var rotationAngle = this.props.rotationAngle;\n var movingPosition = Utils.calculateMovingPosition(e);\n\n var _Utils$rotateByAngle = Utils.rotateByAngle(movingPosition, rotationAngle),\n x = _Utils$rotateByAngle.x,\n y = _Utils$rotateByAngle.y;\n\n this.state = Utils.getInitialState({\n isSwiping: false,\n start: Date.now(),\n x: x,\n y: y\n });\n }\n }, {\n key: \"handleSwipeMove\",\n value: function handleSwipeMove(e) {\n var _this$state = this.state,\n x = _this$state.x,\n y = _this$state.y,\n isSwiping = _this$state.isSwiping;\n if (!x || !y || Utils.checkIsMoreThanSingleTouches(e)) return;\n var directionDelta = this.props.directionDelta || 0;\n\n var _this$getEventData = this.getEventData(e, {\n directionDelta: directionDelta\n }),\n absX = _this$getEventData.absX,\n absY = _this$getEventData.absY,\n deltaX = _this$getEventData.deltaX,\n deltaY = _this$getEventData.deltaY,\n directionX = _this$getEventData.directionX,\n directionY = _this$getEventData.directionY,\n duration = _this$getEventData.duration,\n velocity = _this$getEventData.velocity;\n\n var _this$props4 = this.props,\n delta = _this$props4.delta,\n preventDefaultTouchmoveEvent = _this$props4.preventDefaultTouchmoveEvent,\n onSwipeStart = _this$props4.onSwipeStart,\n onSwiping = _this$props4.onSwiping;\n if (e.cancelable && preventDefaultTouchmoveEvent) e.preventDefault();\n if (absX < Number(delta) && absY < Number(delta) && !isSwiping) return;\n\n if (onSwipeStart && !isSwiping) {\n onSwipeStart(e, {\n deltaX: deltaX,\n deltaY: deltaY,\n absX: absX,\n absY: absY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n velocity: velocity\n });\n }\n\n this.state.isSwiping = true;\n\n if (onSwiping) {\n onSwiping(e, {\n deltaX: deltaX,\n deltaY: deltaY,\n absX: absX,\n absY: absY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n velocity: velocity\n });\n }\n }\n }, {\n key: \"handleSwipeEnd\",\n value: function handleSwipeEnd(e) {\n var _this$props5 = this.props,\n onSwiped = _this$props5.onSwiped,\n onTap = _this$props5.onTap;\n\n if (this.state.isSwiping) {\n var directionDelta = this.props.directionDelta || 0;\n var position = this.getEventData(e, {\n directionDelta: directionDelta\n });\n onSwiped && onSwiped(e, position);\n } else {\n var _position = this.getEventData(e);\n\n onTap && onTap(e, _position);\n }\n\n this.state = Utils.getInitialState();\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(e) {\n var target = this.props.target;\n\n if (target) {\n if (target === e.target) {\n this.handleSwipeStart(e);\n }\n } else {\n this.handleSwipeStart(e);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(e) {\n this.handleSwipeMove(e);\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(e) {\n var isSwiping = this.state.isSwiping;\n var target = this.props.target;\n\n if (target) {\n if (target === e.target || isSwiping) {\n this.handleSwipeEnd(e);\n }\n } else {\n this.handleSwipeEnd(e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(e) {\n var isSwiping = this.state.isSwiping;\n\n if (isSwiping) {\n this.handleSwipeEnd(e);\n }\n }\n }], [{\n key: \"isTouchEventsSupported\",\n value: function isTouchEventsSupported() {\n return Utils.checkIsTouchEventsSupported();\n }\n }]);\n\n return VanillaSwipe;\n}();\n\nexports[\"default\"] = VanillaSwipe;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TraceDirectionKey = exports.Direction = exports.Axis = void 0;\nvar TraceDirectionKey;\nexports.TraceDirectionKey = TraceDirectionKey;\n\n(function (TraceDirectionKey) {\n TraceDirectionKey[\"NEGATIVE\"] = \"NEGATIVE\";\n TraceDirectionKey[\"POSITIVE\"] = \"POSITIVE\";\n TraceDirectionKey[\"NONE\"] = \"NONE\";\n})(TraceDirectionKey || (exports.TraceDirectionKey = TraceDirectionKey = {}));\n\nvar Direction;\nexports.Direction = Direction;\n\n(function (Direction) {\n Direction[\"TOP\"] = \"TOP\";\n Direction[\"LEFT\"] = \"LEFT\";\n Direction[\"RIGHT\"] = \"RIGHT\";\n Direction[\"BOTTOM\"] = \"BOTTOM\";\n Direction[\"NONE\"] = \"NONE\";\n})(Direction || (exports.Direction = Direction = {}));\n\nvar Axis;\nexports.Axis = Axis;\n\n(function (Axis) {\n Axis[\"X\"] = \"x\";\n Axis[\"Y\"] = \"y\";\n})(Axis || (exports.Axis = Axis = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDirection = calculateDirection;\n\nvar _types = require(\"../types\");\n\nfunction calculateDirection(trace) {\n var direction;\n var negative = _types.TraceDirectionKey.NEGATIVE;\n var positive = _types.TraceDirectionKey.POSITIVE;\n var current = trace[trace.length - 1];\n var previous = trace[trace.length - 2] || 0;\n\n if (trace.every(function (i) {\n return i === 0;\n })) {\n return _types.TraceDirectionKey.NONE;\n }\n\n direction = current > previous ? positive : negative;\n\n if (current === 0) {\n direction = previous < 0 ? positive : negative;\n }\n\n return direction;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDirectionDelta = calculateDirectionDelta;\n\nvar _types = require(\"../types\");\n\nvar _common = require(\"./common\");\n\nfunction calculateDirectionDelta(traceDirections) {\n var delta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var length = traceDirections.length;\n var i = length - 1;\n var direction = _types.TraceDirectionKey.NONE;\n\n for (; i >= 0; i--) {\n var current = traceDirections[i];\n var currentKey = (0, _common.getDirectionKey)(current);\n var currentValue = (0, _common.getDirectionValue)(current[currentKey]);\n var prev = traceDirections[i - 1] || {};\n var prevKey = (0, _common.getDirectionKey)(prev);\n var prevValue = (0, _common.getDirectionValue)(prev[prevKey]);\n var difference = (0, _common.getDifference)(currentValue, prevValue);\n\n if (difference >= delta) {\n direction = currentKey;\n break;\n } else {\n direction = prevKey;\n }\n }\n\n return direction;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDuration = calculateDuration;\n\nfunction calculateDuration() {\n var prevTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var nextTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return prevTime ? nextTime - prevTime : 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateMovingPosition = calculateMovingPosition;\n\nfunction calculateMovingPosition(e) {\n if ('changedTouches' in e) {\n var touches = e.changedTouches && e.changedTouches[0];\n return {\n x: touches && touches.clientX,\n y: touches && touches.clientY\n };\n }\n\n return {\n x: e.clientX,\n y: e.clientY\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculatePosition = calculatePosition;\n\nvar _updateTrace = require(\"./updateTrace\");\n\nvar _resolveDirection = require(\"./resolveDirection\");\n\nvar _calculateDuration = require(\"./calculateDuration\");\n\nvar _calculateVelocity = require(\"./calculateVelocity\");\n\nvar _types = require(\"../types\");\n\nfunction calculatePosition(state, options) {\n var start = state.start,\n x = state.x,\n y = state.y,\n traceX = state.traceX,\n traceY = state.traceY;\n var rotatePosition = options.rotatePosition,\n directionDelta = options.directionDelta;\n var deltaX = rotatePosition.x - x;\n var deltaY = y - rotatePosition.y;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n (0, _updateTrace.updateTrace)(traceX, deltaX);\n (0, _updateTrace.updateTrace)(traceY, deltaY);\n var directionX = (0, _resolveDirection.resolveDirection)(traceX, _types.Axis.X, directionDelta);\n var directionY = (0, _resolveDirection.resolveDirection)(traceY, _types.Axis.Y, directionDelta);\n var duration = (0, _calculateDuration.calculateDuration)(start, Date.now());\n var velocity = (0, _calculateVelocity.calculateVelocity)(absX, absY, duration);\n return {\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n positionX: rotatePosition.x,\n positionY: rotatePosition.y,\n velocity: velocity\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateTraceDirections = calculateTraceDirections;\n\nvar _types = require(\"../types\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction calculateTraceDirections() {\n var trace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var ticks = [];\n var positive = _types.TraceDirectionKey.POSITIVE;\n var negative = _types.TraceDirectionKey.NEGATIVE;\n var i = 0;\n var tick = [];\n var direction = _types.TraceDirectionKey.NONE;\n\n for (; i < trace.length; i++) {\n var current = trace[i];\n var prev = trace[i - 1];\n\n if (tick.length) {\n var currentDirection = current > prev ? positive : negative;\n\n if (direction === _types.TraceDirectionKey.NONE) {\n direction = currentDirection;\n }\n\n if (currentDirection === direction) {\n tick.push(current);\n } else {\n ticks.push(_defineProperty({}, direction, tick.slice()));\n tick = [];\n tick.push(current);\n direction = currentDirection;\n }\n } else {\n if (current !== 0) {\n direction = current > 0 ? positive : negative;\n }\n\n tick.push(current);\n }\n }\n\n if (tick.length) {\n ticks.push(_defineProperty({}, direction, tick));\n }\n\n return ticks;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateVelocity = calculateVelocity;\n\nfunction calculateVelocity(x, y, time) {\n var magnitude = Math.sqrt(x * x + y * y);\n return magnitude / (time || 1);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsMoreThanSingleTouches = void 0;\n\nvar checkIsMoreThanSingleTouches = function checkIsMoreThanSingleTouches(e) {\n return Boolean(e.touches && e.touches.length > 1);\n};\n\nexports.checkIsMoreThanSingleTouches = checkIsMoreThanSingleTouches;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsPassiveSupported = checkIsPassiveSupported;\nexports.noop = void 0;\n\nvar _createOptions = require(\"./createOptions\");\n\nfunction checkIsPassiveSupported(isPassiveSupported) {\n if (typeof isPassiveSupported === 'boolean') {\n return isPassiveSupported;\n }\n\n var proxy = {\n isPassiveSupported: isPassiveSupported\n };\n\n try {\n var options = (0, _createOptions.createOptions)(proxy);\n window.addEventListener('checkIsPassiveSupported', noop, options);\n window.removeEventListener('checkIsPassiveSupported', noop, options);\n } catch (err) {}\n\n return proxy.isPassiveSupported;\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsTouchEventsSupported = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar checkIsTouchEventsSupported = function checkIsTouchEventsSupported() {\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && ('ontouchstart' in window || Boolean(window.navigator.maxTouchPoints));\n};\n\nexports.checkIsTouchEventsSupported = checkIsTouchEventsSupported;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resolveAxisDirection = exports.getDirectionValue = exports.getDirectionKey = exports.getDifference = void 0;\n\nvar _types = require(\"../types\");\n\nvar getDirectionKey = function getDirectionKey() {\n var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = Object.keys(object).toString();\n\n switch (key) {\n case _types.TraceDirectionKey.POSITIVE:\n return _types.TraceDirectionKey.POSITIVE;\n\n case _types.TraceDirectionKey.NEGATIVE:\n return _types.TraceDirectionKey.NEGATIVE;\n\n default:\n return _types.TraceDirectionKey.NONE;\n }\n};\n\nexports.getDirectionKey = getDirectionKey;\n\nvar getDirectionValue = function getDirectionValue() {\n var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return values[values.length - 1] || 0;\n};\n\nexports.getDirectionValue = getDirectionValue;\n\nvar getDifference = function getDifference() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Math.abs(x - y);\n};\n\nexports.getDifference = getDifference;\n\nvar resolveAxisDirection = function resolveAxisDirection(axis, key) {\n var negative = _types.Direction.LEFT;\n var positive = _types.Direction.RIGHT;\n var direction = _types.Direction.NONE;\n\n if (axis === _types.Axis.Y) {\n negative = _types.Direction.BOTTOM;\n positive = _types.Direction.TOP;\n }\n\n if (key === _types.TraceDirectionKey.NEGATIVE) {\n direction = negative;\n }\n\n if (key === _types.TraceDirectionKey.POSITIVE) {\n direction = positive;\n }\n\n return direction;\n};\n\nexports.resolveAxisDirection = resolveAxisDirection;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOptions = createOptions;\n\nfunction createOptions() {\n var proxy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n Object.defineProperty(proxy, 'passive', {\n get: function get() {\n this.isPassiveSupported = true;\n return true;\n },\n enumerable: true\n });\n return proxy;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInitialProps = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getInitialProps = function getInitialProps() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread({\n element: null,\n target: null,\n delta: 10,\n directionDelta: 0,\n rotationAngle: 0,\n mouseTrackingEnabled: false,\n touchTrackingEnabled: true,\n preventDefaultTouchmoveEvent: false,\n preventTrackingOnMouseleave: false\n }, props);\n};\n\nexports.getInitialProps = getInitialProps;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInitialState = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getInitialState = function getInitialState() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread({\n x: 0,\n y: 0,\n start: 0,\n isSwiping: false,\n traceX: [],\n traceY: []\n }, options);\n};\n\nexports.getInitialState = getInitialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getOptions = getOptions;\n\nfunction getOptions() {\n var isPassiveSupported = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (isPassiveSupported) {\n return {\n passive: false\n };\n }\n\n return {};\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _calculateDirection = require(\"./calculateDirection\");\n\nObject.keys(_calculateDirection).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDirection[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDirection[key];\n }\n });\n});\n\nvar _calculateDirectionDelta = require(\"./calculateDirectionDelta\");\n\nObject.keys(_calculateDirectionDelta).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDirectionDelta[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDirectionDelta[key];\n }\n });\n});\n\nvar _calculateDuration = require(\"./calculateDuration\");\n\nObject.keys(_calculateDuration).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDuration[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDuration[key];\n }\n });\n});\n\nvar _calculateMovingPosition = require(\"./calculateMovingPosition\");\n\nObject.keys(_calculateMovingPosition).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateMovingPosition[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateMovingPosition[key];\n }\n });\n});\n\nvar _calculatePosition = require(\"./calculatePosition\");\n\nObject.keys(_calculatePosition).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculatePosition[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculatePosition[key];\n }\n });\n});\n\nvar _calculateTraceDirections = require(\"./calculateTraceDirections\");\n\nObject.keys(_calculateTraceDirections).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateTraceDirections[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateTraceDirections[key];\n }\n });\n});\n\nvar _calculateVelocity = require(\"./calculateVelocity\");\n\nObject.keys(_calculateVelocity).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateVelocity[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateVelocity[key];\n }\n });\n});\n\nvar _checkIsMoreThanSingleTouches = require(\"./checkIsMoreThanSingleTouches\");\n\nObject.keys(_checkIsMoreThanSingleTouches).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsMoreThanSingleTouches[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsMoreThanSingleTouches[key];\n }\n });\n});\n\nvar _checkIsPassiveSupported = require(\"./checkIsPassiveSupported\");\n\nObject.keys(_checkIsPassiveSupported).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsPassiveSupported[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsPassiveSupported[key];\n }\n });\n});\n\nvar _checkIsTouchEventsSupported = require(\"./checkIsTouchEventsSupported\");\n\nObject.keys(_checkIsTouchEventsSupported).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsTouchEventsSupported[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsTouchEventsSupported[key];\n }\n });\n});\n\nvar _common = require(\"./common\");\n\nObject.keys(_common).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _common[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _common[key];\n }\n });\n});\n\nvar _createOptions = require(\"./createOptions\");\n\nObject.keys(_createOptions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _createOptions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _createOptions[key];\n }\n });\n});\n\nvar _getInitialState = require(\"./getInitialState\");\n\nObject.keys(_getInitialState).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getInitialState[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getInitialState[key];\n }\n });\n});\n\nvar _getInitialProps = require(\"./getInitialProps\");\n\nObject.keys(_getInitialProps).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getInitialProps[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getInitialProps[key];\n }\n });\n});\n\nvar _getOptions = require(\"./getOptions\");\n\nObject.keys(_getOptions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getOptions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getOptions[key];\n }\n });\n});\n\nvar _resolveDirection = require(\"./resolveDirection\");\n\nObject.keys(_resolveDirection).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _resolveDirection[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _resolveDirection[key];\n }\n });\n});\n\nvar _rotateByAngle = require(\"./rotateByAngle\");\n\nObject.keys(_rotateByAngle).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _rotateByAngle[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _rotateByAngle[key];\n }\n });\n});\n\nvar _updateTrace = require(\"./updateTrace\");\n\nObject.keys(_updateTrace).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _updateTrace[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _updateTrace[key];\n }\n });\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resolveDirection = resolveDirection;\n\nvar _calculateDirection = require(\"./calculateDirection\");\n\nvar _calculateTraceDirections = require(\"./calculateTraceDirections\");\n\nvar _calculateDirectionDelta = require(\"./calculateDirectionDelta\");\n\nvar _common = require(\"./common\");\n\nvar _types = require(\"../types\");\n\nfunction resolveDirection(trace) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _types.Axis.X;\n var directionDelta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (directionDelta) {\n var directions = (0, _calculateTraceDirections.calculateTraceDirections)(trace);\n\n var _direction = (0, _calculateDirectionDelta.calculateDirectionDelta)(directions, directionDelta);\n\n return (0, _common.resolveAxisDirection)(axis, _direction);\n }\n\n var direction = (0, _calculateDirection.calculateDirection)(trace);\n return (0, _common.resolveAxisDirection)(axis, direction);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rotateByAngle = rotateByAngle;\n\nfunction rotateByAngle(position) {\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (angle === 0) {\n return position;\n }\n\n var x = position.x,\n y = position.y;\n var angleInRadians = Math.PI / 180 * angle;\n var rotatedX = x * Math.cos(angleInRadians) + y * Math.sin(angleInRadians);\n var rotatedY = y * Math.cos(angleInRadians) - x * Math.sin(angleInRadians);\n return {\n x: rotatedX,\n y: rotatedY\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.updateTrace = updateTrace;\n\nfunction updateTrace(trace, value) {\n var last = trace[trace.length - 1];\n\n if (last !== value) {\n trace.push(value);\n }\n\n return trace;\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"e3ee1022\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"aquaman-web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkaquaman_web\"] = self[\"webpackChunkaquaman_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a