{"version":3,"file":"app-b833f140903453372c38.js","mappings":"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","sources":["webpack://gfw-brochure/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://gfw-brochure/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/createStyles/createStyles.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/styled/styled.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/withTheme/withTheme.js","webpack://gfw-brochure/./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","webpack://gfw-brochure/./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","webpack://gfw-brochure/./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","webpack://gfw-brochure/./node_modules/hyphenate-style-name/index.js","webpack://gfw-brochure/./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","webpack://gfw-brochure/./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","webpack://gfw-brochure/./node_modules/css-vendor/dist/css-vendor.esm.js","webpack://gfw-brochure/./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","webpack://gfw-brochure/./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack://gfw-brochure/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js","webpack://gfw-brochure/./node_modules/@material-ui/utils/esm/deepmerge.js","webpack://gfw-brochure/./node_modules/camelcase/index.js","webpack://gfw-brochure/./node_modules/clsx/dist/clsx.m.js","webpack://gfw-brochure/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://gfw-brochure/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://gfw-brochure/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://gfw-brochure/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://gfw-brochure/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/html/html.js","webpack://gfw-brochure/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://gfw-brochure/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://gfw-brochure/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://gfw-brochure/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://gfw-brochure/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://gfw-brochure/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://gfw-brochure/./node_modules/escape-string-regexp/index.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gfw-brochure/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://gfw-brochure/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://gfw-brochure/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://gfw-brochure/./node_modules/is-in-browser/dist/module.js","webpack://gfw-brochure/./node_modules/jss/dist/jss.esm.js","webpack://gfw-brochure/./node_modules/react-is/cjs/react-is.production.min.js","webpack://gfw-brochure/./node_modules/react-is/index.js","webpack://gfw-brochure/./node_modules/shallowequal/index.js","webpack://gfw-brochure/./node_modules/ssr-window/ssr-window.esm.js","webpack://gfw-brochure/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://gfw-brochure/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://gfw-brochure/./node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://gfw-brochure/./node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://gfw-brochure/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://gfw-brochure/./node_modules/swiper/esm/utils/get-support.js","webpack://gfw-brochure/./node_modules/swiper/esm/utils/get-device.js","webpack://gfw-brochure/./node_modules/swiper/esm/utils/get-browser.js","webpack://gfw-brochure/./node_modules/swiper/esm/modules/resize/resize.js","webpack://gfw-brochure/./node_modules/swiper/esm/modules/observer/observer.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events-emitter.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateSize.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/loop/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onResize.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onClick.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/onScroll.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/events/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/classes/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/defaults.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/core-class.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/modular.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/transition/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/images/index.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/images/loadImage.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/navigation/navigation.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack://gfw-brochure/./node_modules/dom7/dom7.esm.js","webpack://gfw-brochure/./node_modules/swiper/esm/utils/dom.js","webpack://gfw-brochure/./node_modules/swiper/esm/utils/utils.js","webpack://gfw-brochure/./node_modules/gatsby-link/index.js","webpack://gfw-brochure/./node_modules/gatsby-link/parse-path.js","webpack://gfw-brochure/./node_modules/gatsby-react-router-scroll/index.js","webpack://gfw-brochure/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gfw-brochure/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gfw-brochure/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gfw-brochure/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gfw-brochure/./.cache/api-runner-browser-plugins.js","webpack://gfw-brochure/./.cache/api-runner-browser.js","webpack://gfw-brochure/./.cache/caches/gatsby-plugin-material-ui/styles-provider-props.js","webpack://gfw-brochure/./.cache/emitter.js","webpack://gfw-brochure/./node_modules/mitt/dist/mitt.es.js","webpack://gfw-brochure/./.cache/normalize-page-path.js","webpack://gfw-brochure/./.cache/find-path.js","webpack://gfw-brochure/./.cache/gatsby-browser-entry.js","webpack://gfw-brochure/./.cache/prefetch.js","webpack://gfw-brochure/./.cache/loader.js","webpack://gfw-brochure/./.cache/page-renderer.js","webpack://gfw-brochure/./.cache/route-announcer-props.js","webpack://gfw-brochure/./.cache/navigation.js","webpack://gfw-brochure/./node_modules/shallow-compare/es/index.js","webpack://gfw-brochure/./.cache/ensure-resources.js","webpack://gfw-brochure/./.cache/production-app.js","webpack://gfw-brochure/./.cache/public-page-renderer-prod.js","webpack://gfw-brochure/./.cache/public-page-renderer.js","webpack://gfw-brochure/./.cache/react-lifecycles-compat.js","webpack://gfw-brochure/./.cache/redirect-utils.js","webpack://gfw-brochure/./.cache/register-service-worker.js","webpack://gfw-brochure/./.cache/strip-prefix.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack://gfw-brochure/./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack://gfw-brochure/./gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://gfw-brochure/../src/image-utils.ts","webpack://gfw-brochure/../src/components/hooks.ts","webpack://gfw-brochure/../src/components/layout-wrapper.tsx","webpack://gfw-brochure/../src/components/picture.tsx","webpack://gfw-brochure/../src/components/placeholder.tsx","webpack://gfw-brochure/../src/components/main-image.tsx","webpack://gfw-brochure/../src/components/gatsby-image.server.tsx","webpack://gfw-brochure/../src/components/gatsby-image.browser.tsx","webpack://gfw-brochure/../src/components/static-image.server.tsx","webpack://gfw-brochure/../src/components/static-image.tsx","webpack://gfw-brochure/../src/components/later-hydrator.tsx","webpack://gfw-brochure/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-material-ui/gatsby-browser.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-material-ui/utils.js","webpack://gfw-brochure/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://gfw-brochure/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://gfw-brochure/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://gfw-brochure/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://gfw-brochure/./node_modules/invariant/browser.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/extends.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://gfw-brochure/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\nvar _invariant = require(\"invariant\");\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n var outerOptions = React.useContext(StylesContext);\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n return ruleCounter;\n };\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n var defaultProps = theme.props[name];\n var propName;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n return props;\n}","export default function createStyles(styles) {\n return styles;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport React from 'react';\nimport { SheetsRegistry } from 'jss';\nimport StylesProvider from '../StylesProvider';\nimport createGenerateClassName from '../createGenerateClassName';\nvar ServerStyleSheets = /*#__PURE__*/function () {\n function ServerStyleSheets() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ServerStyleSheets);\n this.options = options;\n }\n _createClass(ServerStyleSheets, [{\n key: \"collect\",\n value: function collect(children) {\n // This is needed in order to deduplicate the injection of CSS in the page.\n var sheetsManager = new Map(); // This is needed in order to inject the critical CSS.\n\n this.sheetsRegistry = new SheetsRegistry(); // A new class name generator\n\n var generateClassName = createGenerateClassName();\n return /*#__PURE__*/React.createElement(StylesProvider, _extends({\n sheetsManager: sheetsManager,\n serverGenerateClassName: generateClassName,\n sheetsRegistry: this.sheetsRegistry\n }, this.options), children);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';\n }\n }, {\n key: \"getStyleElement\",\n value: function getStyleElement(props) {\n return /*#__PURE__*/React.createElement('style', _extends({\n id: 'jss-server-side',\n key: 'jss-server-side',\n dangerouslySetInnerHTML: {\n __html: this.toString()\n }\n }, props));\n }\n }]);\n return ServerStyleSheets;\n}();\nexport { ServerStyleSheets as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport clsx from 'clsx';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport makeStyles from '../makeStyles';\nfunction omit(input, fields) {\n var output = {};\n Object.keys(input).forEach(function (prop) {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n} // styled-components's API removes the mapping between components and styles.\n// Using components as a low-level styling construct can be simpler.\n\nexport default function styled(Component) {\n var componentCreator = function componentCreator(style) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"name\"]);\n if (process.env.NODE_ENV !== 'production' && Component === undefined) {\n throw new Error(['You are calling styled(Component)(style) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n var classNamePrefix = name;\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n var stylesOrCreator = typeof style === 'function' ? function (theme) {\n return {\n root: function root(props) {\n return style(_extends({\n theme: theme\n }, props));\n }\n };\n } : {\n root: style\n };\n var useStyles = makeStyles(stylesOrCreator, _extends({\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var filterProps;\n var propTypes = {};\n if (style.filterProps) {\n filterProps = style.filterProps;\n delete style.filterProps;\n }\n /* eslint-disable react/forbid-foreign-prop-types */\n\n if (style.propTypes) {\n propTypes = style.propTypes;\n delete style.propTypes;\n }\n /* eslint-enable react/forbid-foreign-prop-types */\n\n var StyledComponent = /*#__PURE__*/React.forwardRef(function StyledComponent(props, ref) {\n var children = props.children,\n classNameProp = props.className,\n clone = props.clone,\n ComponentProp = props.component,\n other = _objectWithoutProperties(props, [\"children\", \"className\", \"clone\", \"component\"]);\n var classes = useStyles(props);\n var className = clsx(classes.root, classNameProp);\n var spread = other;\n if (filterProps) {\n spread = omit(spread, filterProps);\n }\n if (clone) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n className: clsx(children.props.className, className)\n }, spread));\n }\n if (typeof children === 'function') {\n return children(_extends({\n className: className\n }, spread));\n }\n var FinalComponent = ComponentProp || Component;\n return /*#__PURE__*/React.createElement(FinalComponent, _extends({\n ref: ref,\n className: className\n }, spread), children);\n });\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.displayName = \"Styled(\".concat(classNamePrefix, \")\");\n }\n hoistNonReactStatics(StyledComponent, Component);\n return StyledComponent;\n };\n return componentCreator;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n var theme = React.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}\nexport default ThemeProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport useTheme from '../useTheme';\nexport function withThemeCreator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultTheme = options.defaultTheme;\n var withTheme = function withTheme(Component) {\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withTheme(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n var WithTheme = /*#__PURE__*/React.forwardRef(function WithTheme(props, ref) {\n var innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"innerRef\"]);\n var theme = useTheme() || defaultTheme;\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: innerRef || ref\n }, other));\n });\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n if (process.env.NODE_ENV !== 'production') {\n WithTheme.displayName = \"WithTheme(\".concat(getDisplayName(Component), \")\");\n }\n hoistNonReactStatics(WithTheme, Component);\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithTheme.Naked = Component;\n }\n return WithTheme;\n };\n return withTheme;\n} // Provide the theme object as a prop to the input component.\n// It's an alternative API to useTheme().\n// We encourage the usage of useTheme() where possible.\n\nvar withTheme = withThemeCreator();\nexport default withTheme;","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\nexport default functionPlugin;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\nvar at = '@global';\nvar atPrefix = '@global ';\nvar GlobalContainerRule = /*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n var _proto = GlobalContainerRule.prototype;\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n return GlobalContainerRule;\n}();\nvar GlobalPrefixedRule = /*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n var _proto2 = GlobalPrefixedRule.prototype;\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n return GlobalPrefixedRule;\n}();\nvar separatorRegExp = /\\s*,\\s*/g;\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n return scoped;\n}\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n delete style[at];\n}\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n var parent = options.parent;\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n return null;\n }\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\nexport default jssGlobal;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n if (rule) {\n return rule.selector;\n }\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n return result;\n }\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n });\n\n delete options.name;\n return options;\n }\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n delete style[prop];\n }\n return style;\n }\n return {\n onProcessStyle: onProcessStyle\n };\n}\nexport default jssNested;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n return style;\n }\n return convertCase(style);\n }\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default camelCase;","import { hasCSSTOMSupport } from 'jss';\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n var newObj = {};\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n return newObj;\n}\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n return value.toString();\n }\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n var camelCasedOptions = addCamelCasedVersion(options);\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n return style;\n }\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default defaultUnit;","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n if (camelize(longhand) in style) {\n return prop;\n }\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n if (options.transform) {\n return prop;\n }\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n if (options.transition) {\n return prop;\n }\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n return _jsProp in style ? \"page-\" + prop : false;\n }\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n return prop;\n }\n};\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n if (!multiple) return false;\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n return newProp.map(prefixCss);\n }\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\nvar el;\nvar cache = {};\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n return cache[prop];\n}\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n return style;\n }\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\nexport default jssVendorPrefixer;","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n return prop0.length - prop1.length;\n };\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n return newStyle;\n }\n };\n}\nexport default jssPropsSort;","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(),\n // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n return indexCounter;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n return {\n create: function create(theme, name) {\n var styles;\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n throw err;\n }\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n var overrides = theme.overrides[name];\n var stylesWithOverrides = _extends({}, styles);\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n var generate = false;\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n return state.cacheClasses.value;\n}\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n if (stylesOptions.disableGeneration) {\n return;\n }\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n var staticSheet;\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n var styles = stylesCreator.create(theme, name);\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n sheetManager.refs += 1;\n}\nfunction update(_ref3, props) {\n var state = _ref3.state;\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n if (stylesOptions.disableGeneration) {\n return;\n }\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n return classes;\n };\n return useStyles;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n if (!newClasses) {\n return baseClasses;\n }\n var nextClasses = _extends({}, baseClasses);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","import React from 'react';\nvar ThemeContext = React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n var classNamePrefix = name;\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n hoistNonReactStatics(WithStyles, Component);\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n return WithStyles;\n };\n};\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","'use strict';\n\nvar preserveCamelCase = function preserveCamelCase(string) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n for (var i = 0; i < string.length; i++) {\n var character = string[i];\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n return string;\n};\nvar camelCase = function camelCase(input, options) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n options = Object.assign({\n pascalCase: false\n }, options);\n var postProcess = function postProcess(x) {\n return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n };\n if (Array.isArray(input)) {\n input = input.map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n input = input.trim();\n }\n if (input.length === 0) {\n return '';\n }\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n var hasUpperCase = input !== input.toLowerCase();\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (_, p1) {\n return p1.toUpperCase();\n }).replace(/\\d+(\\w|$)/g, function (m) {\n return m.toUpperCase();\n });\n return postProcess(input);\n};\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;","function r(e) {\n var t,\n f,\n n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;else if (\"object\" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++) e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);else for (t in e) e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nexport function clsx() {\n for (var e, t, f = 0, n = \"\"; f < arguments.length;) (e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\nexport default clsx;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n _classCallCheck(this, TemplateTag);\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n }\n\n // else, return a transformed end result of processing the template with our tag\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n };\n\n // if first argument is an array, extrude it as a list of transformers\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n }\n\n // if any transformers are functions, this means they are not initiated - automatically initiate them\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n });\n\n // return an ES2015 template tag\n return this.tag;\n }\n\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n return this.transformers.reduce(cb, str);\n }\n\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n return this.transformers.reduce(cb, substitution);\n }\n\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n return TemplateTag;\n}();\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial;\n // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n }\n // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n return substitution;\n }\n };\n};\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n return endResult;\n }\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n throw new Error('Unknown type: ' + type);\n }\n };\n};\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n side = side.toLowerCase();\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n throw new Error('Side not supported: ' + side);\n }\n };\n};\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n return substitution;\n }\n };\n};\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n if (isValidValue(substitution)) {\n return substitution;\n }\n return '';\n }\n };\n};\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n }\n\n // Do not touch if null or undefined\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.default = _default;\nexports.routeThroughBrowserOrApp = exports.hashShouldBeFollowed = exports.pathIsNotHandledByApp = exports.urlsAreOnSameOrigin = exports.authorIsForcingNavigation = exports.anchorsTargetIsEquivalentToSelf = exports.findClosestAnchor = exports.navigationWasHandledElsewhere = exports.slashedPathname = exports.userIsForcingNavigation = void 0;\nvar _escapeStringRegexp = _interopRequireDefault(require(\"escape-string-regexp\"));\nvar _gatsby = require(\"gatsby\");\nvar userIsForcingNavigation = function userIsForcingNavigation(event) {\n return event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}; // IE does not include leading slash in anchor.pathname\n\nexports.userIsForcingNavigation = userIsForcingNavigation;\nvar slashedPathname = function slashedPathname(pathname) {\n return pathname[0] === \"/\" ? pathname : \"/\" + pathname;\n};\nexports.slashedPathname = slashedPathname;\nvar navigationWasHandledElsewhere = function navigationWasHandledElsewhere(event) {\n return event.defaultPrevented;\n};\nexports.navigationWasHandledElsewhere = navigationWasHandledElsewhere;\nvar findClosestAnchor = function findClosestAnchor(node) {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n return null;\n};\nexports.findClosestAnchor = findClosestAnchor;\nvar anchorsTargetIsEquivalentToSelf = function anchorsTargetIsEquivalentToSelf(anchor) {\n return (/* If target attribute is not present it's treated as _self */\n anchor.hasAttribute(\"target\") === false ||\n /**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n /**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\n anchor.target == null ||\n /**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n [\"_self\", \"\"].includes(anchor.target) || anchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent ||\n // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top ||\n // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView)\n );\n};\nexports.anchorsTargetIsEquivalentToSelf = anchorsTargetIsEquivalentToSelf;\nvar authorIsForcingNavigation = function authorIsForcingNavigation(anchor) {\n return (\n /**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\n anchor.hasAttribute(\"download\") === true ||\n /**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\n anchorsTargetIsEquivalentToSelf(anchor) === false\n );\n}; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\nexports.authorIsForcingNavigation = authorIsForcingNavigation;\nvar urlsAreOnSameOrigin = function urlsAreOnSameOrigin(origin, destination) {\n return origin.protocol === destination.protocol && /* a.host includes both hostname and port in the expected format host:port */\n origin.host === destination.host;\n};\nexports.urlsAreOnSameOrigin = urlsAreOnSameOrigin;\nvar pathIsNotHandledByApp = function pathIsNotHandledByApp(destination, pathStartRegEx) {\n var pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexports.pathIsNotHandledByApp = pathIsNotHandledByApp;\nvar hashShouldBeFollowed = function hashShouldBeFollowed(origin, destination) {\n return destination.hash !== \"\" && (destination.pathname === \"\" || /* Don't catch links pointed to the same page but with a hash. */\n destination.pathname === origin.pathname);\n};\nexports.hashShouldBeFollowed = hashShouldBeFollowed;\nvar routeThroughBrowserOrApp = function routeThroughBrowserOrApp(hrefHandler, pluginOptions) {\n return function (event) {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n var clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n var destination = document.createElement(\"a\"); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n\n if (clickedAnchor.href !== \"\") {\n destination.href = clickedAnchor.href;\n }\n if (\"SVGAnimatedString\" in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n var origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n var pathStartRegEx = new RegExp(\"^\" + (0, _escapeStringRegexp.default)((0, _gatsby.withPrefix)(\"/\")));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n if (pluginOptions.excludePattern) {\n var excludeRegex = new RegExp(pluginOptions.excludePattern);\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n var destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\" + destinationPathname + destination.search + destination.hash);\n return false;\n };\n};\nexports.routeThroughBrowserOrApp = routeThroughBrowserOrApp;\nfunction _default(root, pluginOptions, cb) {\n var clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(\"click\", clickHandler);\n return function () {\n return root.removeEventListener(\"click\", clickHandler);\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _gatsby = require(\"gatsby\");\nvar _catchLinks = _interopRequireDefault(require(\"./catch-links\"));\nexports.onClientEntry = function (_, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n (0, _catchLinks.default)(window, pluginOptions, function (href) {\n (0, _gatsby.navigate)(href);\n });\n};","\"use strict\";\n\nmodule.exports = Object.assign;","'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;\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 return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\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 if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","/** @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';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n}\nfunction A(a) {\n return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\nexports.isFragment = function (a) {\n return z(a) === e;\n};\nexports.isLazy = function (a) {\n return z(a) === t;\n};\nexports.isMemo = function (a) {\n return z(a) === r;\n};\nexports.isPortal = function (a) {\n return z(a) === d;\n};\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\nexport default isBrowser;","import \"core-js/modules/esnext.global-this.js\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n return null;\n}\nvar join = function join(value, by) {\n var result = '';\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n return cssValue;\n};\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (options.format === false) {\n indent = -Infinity;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n for (var prop in fallback) {\n var value = fallback[prop];\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = function escape(str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n};\nvar BaseStyleRule = /*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n var _proto = BaseStyleRule.prototype;\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n var isEmpty = newValue == null || newValue === false;\n var isDefined = (name in this.style); // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n var sheet = this.options.sheet;\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n return this;\n };\n return BaseStyleRule;\n}();\nvar StyleRule = /*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n function StyleRule(key, style, options) {\n var _this;\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n if (renderer) {\n var json = this.toJSON();\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n return json;\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */,\n\n get: function get() {\n return this.selectorText;\n }\n }]);\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n return new StyleRule(key, style, options);\n }\n};\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule = /*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n var _proto = ConditionalRule.prototype;\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n if (options.children === false) {\n return this.query + \" {}\";\n }\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule = /*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = KeyframesRule.prototype;\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n if (!sheet) {\n return val;\n }\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n default:\n return val;\n }\n }\n};\nvar KeyframeRule = /*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n return null;\n }\n};\nvar FontFaceRule = /*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = FontFaceRule.prototype;\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n if (Array.isArray(this.style)) {\n var str = '';\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n return str;\n }\n return toCss(this.at, this.style, options);\n };\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\nvar ViewportRule = /*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n var _proto = ViewportRule.prototype;\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\nvar SimpleRule = /*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n var _proto = SimpleRule.prototype;\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n return str;\n }\n return this.key + \" \" + this.value + \";\";\n };\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n};\n\nvar RuleList = /*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n var _proto = RuleList.prototype;\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n var key = name;\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n this.raw[key] = decl;\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n if (oldRule) {\n this.remove(oldRule);\n }\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n return str;\n };\n return RuleList;\n}();\nvar StyleSheet = /*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n this.rules = new RuleList(this.options);\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n var _proto = StyleSheet.prototype;\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n return added;\n }\n /**\n * Get a rule by name or selector.\n */;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n if (!rule ||\n // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n this.rules.remove(rule);\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n return true;\n }\n /**\n * Get index of a rule.\n */;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */;\n\n _proto.update = function update() {\n var _this$rules;\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n return this;\n }\n /**\n * Updates a single rule.\n */;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n return StyleSheet;\n}();\nvar PluginsRegistry = /*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n return processedValue;\n }\n /**\n * Register a plugin.\n */;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry = /*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n var css = '';\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n return css;\n };\n _createClass(SheetsRegistry, [{\n key: \"index\",\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n var ruleCounter = 0;\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n var jssId = '';\n var prefix = '';\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n return true;\n};\n/**\n * Remove a style property.\n */\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\nfunction findCommentNode(text) {\n var head = getHead();\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n sheet = findHighestSheet(registry, options);\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n var insertionPoint = options.insertionPoint;\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n return container.cssRules[index];\n};\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n return index;\n};\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\nvar DomRenderer = /*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n var _proto = DomRenderer.prototype;\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n if (latestNativeParent === false) {\n return false;\n }\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n if (nativeRule === false) {\n return false;\n }\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n return DomRenderer;\n}();\nvar instanceCounter = 0;\nvar Jss = /*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.9.2\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n var _proto = Jss.prototype;\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n index = _options.index;\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n var rule = createRule(name, style, ruleOptions);\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */;\n\n _proto.use = function use() {\n var _this = this;\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n return Jss;\n}();\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager = /*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n var _proto = SheetsManager.prototype;\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n entry.refs++;\n return entry.sheet;\n }\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = 60103,\n c = 60106,\n d = 60107,\n e = 60108,\n f = 60114,\n g = 60109,\n h = 60110,\n k = 60112,\n l = 60113,\n m = 60120,\n n = 60115,\n p = 60116,\n q = 60121,\n r = 60122,\n u = 60117,\n v = 60129,\n w = 60131;\nif (\"function\" === typeof Symbol && Symbol.for) {\n var x = Symbol.for;\n b = x(\"react.element\");\n c = x(\"react.portal\");\n d = x(\"react.fragment\");\n e = x(\"react.strict_mode\");\n f = x(\"react.profiler\");\n g = x(\"react.provider\");\n h = x(\"react.context\");\n k = x(\"react.forward_ref\");\n l = x(\"react.suspense\");\n m = x(\"react.suspense_list\");\n n = x(\"react.memo\");\n p = x(\"react.lazy\");\n q = x(\"react.block\");\n r = x(\"react.server.block\");\n u = x(\"react.fundamental\");\n v = x(\"react.debug_trace_mode\");\n w = x(\"react.legacy_hidden\");\n}\nfunction y(a) {\n if (\"object\" === typeof a && null !== a) {\n var t = a.$$typeof;\n switch (t) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case l:\n case m:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case h:\n case k:\n case p:\n case n:\n case g:\n return a;\n default:\n return t;\n }\n }\n case c:\n return t;\n }\n }\n}\nvar z = g,\n A = b,\n B = k,\n C = d,\n D = p,\n E = n,\n F = c,\n G = f,\n H = e,\n I = l;\nexports.ContextConsumer = h;\nexports.ContextProvider = z;\nexports.Element = A;\nexports.ForwardRef = B;\nexports.Fragment = C;\nexports.Lazy = D;\nexports.Memo = E;\nexports.Portal = F;\nexports.Profiler = G;\nexports.StrictMode = H;\nexports.Suspense = I;\nexports.isAsyncMode = function () {\n return !1;\n};\nexports.isConcurrentMode = function () {\n return !1;\n};\nexports.isContextConsumer = function (a) {\n return y(a) === h;\n};\nexports.isContextProvider = function (a) {\n return y(a) === g;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\nexports.isForwardRef = function (a) {\n return y(a) === k;\n};\nexports.isFragment = function (a) {\n return y(a) === d;\n};\nexports.isLazy = function (a) {\n return y(a) === p;\n};\nexports.isMemo = function (a) {\n return y(a) === n;\n};\nexports.isPortal = function (a) {\n return y(a) === c;\n};\nexports.isProfiler = function (a) {\n return y(a) === f;\n};\nexports.isStrictMode = function (a) {\n return y(a) === e;\n};\nexports.isSuspense = function (a) {\n return y(a) === l;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === v || a === e || a === l || a === m || a === w || \"object\" === typeof a && null !== a && (a.$$typeof === p || a.$$typeof === n || a.$$typeof === g || a.$$typeof === h || a.$$typeof === k || a.$$typeof === u || a.$$typeof === q || a[0] === r) ? !0 : !1;\n};\nexports.typeOf = y;","'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\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (ret !== void 0) {\n return !!ret;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\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 if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n};","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n default:\n f += e.charAt(l);\n }\n g = 59;\n }\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n case 125:\n k--;\n break;\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n break;\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n }\n }\n l = u;\n }\n }\n break;\n case 91:\n g++;\n case 40:\n g++;\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n }\n if (0 === k) break;\n l++;\n }\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n default:\n r = O;\n }\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n default:\n z++;\n y = e.charAt(l);\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n default:\n 32 !== g && (y = ' ');\n }\n break;\n case 0:\n y = '\\\\0';\n break;\n case 12:\n y = '\\\\f';\n break;\n case 11:\n y = '\\\\v';\n break;\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n case 8:\n 111 === K && (E = K);\n }\n break;\n case 58:\n 0 === n + b + m && (u = l);\n break;\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n case 91:\n 0 === n + b + v && m++;\n break;\n case 93:\n 0 === n + b + v && m--;\n break;\n case 41:\n 0 === n + b + m && v--;\n break;\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n default:\n q = 1;\n }\n v++;\n }\n break;\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n case 220:\n t = l, b = 42;\n }\n break;\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n 0 === b && (f += y);\n }\n K = x;\n x = g;\n l++;\n }\n t = p.length;\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n E = 0;\n }\n }\n return G + p + F;\n }\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n break;\n default:\n var v = b = 0;\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n }\n return c;\n }\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n return d + c;\n }\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n if (0 === w || 2 === w && !L(a, 1)) return a;\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n case 969:\n case 942:\n return '-webkit-' + a + a;\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n case 220:\n b = a.replace(G, 'lr');\n break;\n default:\n return a;\n }\n return '-webkit-' + a + '-ms-' + b + a;\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n return a + ';';\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n return a;\n }\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n default:\n x = w;\n }\n }\n if (x !== c) return x;\n }\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n return T;\n }\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */ && prop.charCodeAt(1) === 110\n /* n */ && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */);\n\nexport default isPropValid;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }).apply(this, arguments);\n}\nvar g = function g(e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n return n;\n },\n S = function S(t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n },\n w = Object.freeze([]),\n E = Object.freeze({});\nfunction b(e) {\n return \"function\" == typeof e;\n}\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.6\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n } : {};\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n for (var s = r; s < o; s++) this.groupSizes[s] = 0;\n }\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n return t;\n }, e;\n }(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function B(e) {\n if (x.has(e)) return x.get(e);\n for (; k.has(V);) V++;\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n },\n z = function z(e) {\n return k.get(e);\n },\n M = function M(e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n },\n G = \"style[\" + A + '][data-styled-version=\"5.3.6\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function F(e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) (r = o[s]) && e.registerName(t, r);\n },\n Y = function Y(e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n if (i) {\n var a = i.match(L);\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n },\n q = function q() {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n },\n H = function H(e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.6\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n },\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n j(17);\n }(t), this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n }(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n }(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n }(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n },\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n e.registerId = function (e) {\n return B(e);\n };\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n return r;\n }(this);\n }, e;\n }(),\n K = /(a)(d)/gi,\n Q = function Q(e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n };\nfunction ee(e) {\n var t,\n n = \"\";\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\nvar te = function te(e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n return e;\n },\n ne = function ne(e) {\n return te(5381, e);\n };\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n return !0;\n}\nvar oe = ne(\"5.3.6\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n if (l) {\n var m = ee(u >>> 0);\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n }(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function f(e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\nfunction fe() {\n return s(ue) || he;\n}\nfunction me() {\n return s(de) || pe;\n}\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n }(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function Ee(e) {\n return \"-\" + e.toLowerCase();\n };\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\nvar _e = function _e(e) {\n return null == e || !1 === e || \"\" === e;\n};\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n return i;\n }\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n for (var i in t) t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\nvar Ae = function Ae(e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function Oe(e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) s[i - 1] = arguments[i];\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n },\n Re = function Re(e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n },\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\nvar xe = function xe(e) {\n return ee(ne(e) >>> 0);\n};\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\nvar Ve = function Ve(e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n },\n Be = function Be(e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n };\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) Be(a) && ze(e, i[a], a);\n }\n return e;\n}\nvar Ge = r.createContext(),\n Le = Ge.Consumer;\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\nvar Ye = {};\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.6\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function O(e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n for (t in b(i) && (i = i(r)), i) r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n for (r = 0; r < s.length; r++) n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function get() {\n return this._foldedDefaultProps;\n },\n set: function set(t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\nvar He = function He(e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n var s = function s() {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n return \"production\" !== process.env.NODE_ENV && Oe(a), r.memo(l);\n}\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n }(),\n Xe = function Xe(e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n },\n Ze = function Ze() {\n return s(Ge);\n },\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n };\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","import { getWindow, getDocument } from 'ssr-window';\nvar support;\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!device) {\n device = calcDevice(overrides);\n }\n return device;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\nfunction calcBrowser() {\n var window = getWindow();\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n activeSlide.addClass(params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n } // Get real index\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n index = indexAsNumber;\n }\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n } // Find current slide\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\nfunction dummyEventListener() {}\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n return swiper;\n }\n var _proto = Swiper.prototype;\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n };\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n };\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n return res;\n }\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n var $wrapperEl = getWrapper();\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n };\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n };\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n return Swiper;\n}();\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionStart');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionEnd');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n swiper.emitContainerClasses();\n }\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n function onReady() {\n if (callback) callback();\n }\n var isPicture = $(imageEl).parent('picture')[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n function Dom7(items) {\n var _this;\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n var a = [];\n var res = context.querySelectorAll(selector);\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n return a;\n}\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n if (!selector) {\n return new Dom7(arr);\n }\n if (typeof selector === 'string') {\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n return this;\n}\nfunction data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n var dataKey = el.getAttribute(\"data-\" + key);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n } // Set value\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n return values;\n }\n return el.value;\n } // set value\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n return this;\n}\nfunction value(value) {\n return this.val(value);\n}\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n return this;\n}\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once() {\n var dom = this;\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger() {\n var window = getWindow();\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n var dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n return this;\n}\nfunction animationEnd(callback) {\n var dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n return this;\n}\nfunction width() {\n var window = getWindow();\n if (this[0] === window) {\n return window.innerWidth;\n }\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n var window = getWindow();\n if (this[0] === window) {\n return window.innerHeight;\n }\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n return null;\n}\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n var window = getWindow();\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n var window = getWindow();\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n if (selector === document) {\n return el === document;\n }\n if (selector === window) {\n return el === window;\n }\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n if (index > length - 1) {\n return $([]);\n }\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n return $([this[index]]);\n}\nfunction append() {\n var newChild;\n var document = getDocument();\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n return this;\n}\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n var before = $(selector);\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n var after = $(selector);\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n return $([]);\n }\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n el = _next;\n }\n return $(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n return $([]);\n }\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n el = _prev;\n }\n return $(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(parents);\n}\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n _parent = _parent.parentNode;\n }\n }\n return $(parents);\n}\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return $(foundElements);\n}\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return $(children);\n}\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add() {\n var dom = this;\n var i;\n var j;\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n return dom;\n}\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\nfunction scrollTo() {\n var window = getWindow();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n if (startTime === null) {\n startTime = time;\n }\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n var dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n var dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n if (a.elements.length === 0) {\n return els;\n }\n var animateInstance;\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n return els;\n}\nfunction stop() {\n var els = this;\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\nvar noTrigger = 'resize scroll'.split(' ');\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on.apply(this, [name].concat(args));\n }\n return eventHandler;\n}\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getDocument, getWindow } from 'ssr-window';\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n return params;\n}\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\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\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-about-us-tsx\": () => import(\"./../../../src/pages/about-us.tsx\" /* webpackChunkName: \"component---src-pages-about-us-tsx\" */),\n \"component---src-pages-events-tsx\": () => import(\"./../../../src/pages/events.tsx\" /* webpackChunkName: \"component---src-pages-events-tsx\" */),\n \"component---src-pages-forgotten-password-2-tsx\": () => import(\"./../../../src/pages/forgotten-password-2.tsx\" /* webpackChunkName: \"component---src-pages-forgotten-password-2-tsx\" */),\n \"component---src-pages-forgotten-password-email-sent-tsx\": () => import(\"./../../../src/pages/forgotten-password-email-sent.tsx\" /* webpackChunkName: \"component---src-pages-forgotten-password-email-sent-tsx\" */),\n \"component---src-pages-forgotten-password-success-tsx\": () => import(\"./../../../src/pages/forgotten-password-success.tsx\" /* webpackChunkName: \"component---src-pages-forgotten-password-success-tsx\" */),\n \"component---src-pages-forgotten-password-tsx\": () => import(\"./../../../src/pages/forgotten-password.tsx\" /* webpackChunkName: \"component---src-pages-forgotten-password-tsx\" */),\n \"component---src-pages-get-in-touch-tsx\": () => import(\"./../../../src/pages/get-in-touch.tsx\" /* webpackChunkName: \"component---src-pages-get-in-touch-tsx\" */),\n \"component---src-pages-home-event-tsx\": () => import(\"./../../../src/pages/home-event.tsx\" /* webpackChunkName: \"component---src-pages-home-event-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-partnerships-tsx\": () => import(\"./../../../src/pages/partnerships.tsx\" /* webpackChunkName: \"component---src-pages-partnerships-tsx\" */),\n \"component---src-pages-privacy-policy-tsx\": () => import(\"./../../../src/pages/privacy-policy.tsx\" /* webpackChunkName: \"component---src-pages-privacy-policy-tsx\" */),\n \"component---src-pages-register-success-tsx\": () => import(\"./../../../src/pages/register-success.tsx\" /* webpackChunkName: \"component---src-pages-register-success-tsx\" */),\n \"component---src-pages-register-tsx\": () => import(\"./../../../src/pages/register.tsx\" /* webpackChunkName: \"component---src-pages-register-tsx\" */),\n \"component---src-pages-search-portfolios-holding-tsx\": () => import(\"./../../../src/pages/search-portfolios-holding.tsx\" /* webpackChunkName: \"component---src-pages-search-portfolios-holding-tsx\" */),\n \"component---src-pages-search-portfolios-tsx\": () => import(\"./../../../src/pages/search-portfolios.tsx\" /* webpackChunkName: \"component---src-pages-search-portfolios-tsx\" */),\n \"component---src-pages-search-tsx\": () => import(\"./../../../src/pages/search.tsx\" /* webpackChunkName: \"component---src-pages-search-tsx\" */),\n \"component---src-pages-signed-out-tsx\": () => import(\"./../../../src/pages/signed-out.tsx\" /* webpackChunkName: \"component---src-pages-signed-out-tsx\" */),\n \"component---src-pages-social-wall-tsx\": () => import(\"./../../../src/pages/social-wall.tsx\" /* webpackChunkName: \"component---src-pages-social-wall-tsx\" */),\n \"component---src-pages-terms-and-conditions-tsx\": () => import(\"./../../../src/pages/terms-and-conditions.tsx\" /* webpackChunkName: \"component---src-pages-terms-and-conditions-tsx\" */),\n \"component---src-pages-universities-tsx\": () => import(\"./../../../src/pages/universities.tsx\" /* webpackChunkName: \"component---src-pages-universities-tsx\" */),\n \"component---src-templates-partner-post-tsx\": () => import(\"./../../../src/templates/partner-post.tsx\" /* webpackChunkName: \"component---src-templates-partner-post-tsx\" */),\n \"component---src-templates-student-post-tsx\": () => import(\"./../../../src/templates/student-post.tsx\" /* webpackChunkName: \"component---src-templates-student-post-tsx\" */),\n \"component---src-templates-university-post-tsx\": () => import(\"./../../../src/templates/university-post.tsx\" /* webpackChunkName: \"component---src-templates-university-post-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-material-ui/gatsby-browser.js'),\n options: {\"plugins\":[],\"stylesProvider\":{\"injectFirst\":true}},\n },{\n plugin: require('../node_modules/gatsby-plugin-styled-components/gatsby-browser.js'),\n options: {\"plugins\":[],\"displayName\":true,\"fileName\":true,\"minify\":true,\"namespace\":\"\",\"transpileTemplateLiterals\":true,\"topLevelImportPaths\":[],\"pure\":false,\"disableVendorPrefixes\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-typography/gatsby-browser.js'),\n options: {\"plugins\":[],\"pathToConfigModule\":\"src/util/typography\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-source-wordpress/gatsby-browser.js'),\n options: {\"plugins\":[],\"verbose\":true,\"url\":\"https://cms2.gfw-dev.co.uk/graphql\",\"schema\":{\"perPage\":15,\"requestConcurrency\":15,\"previewRequestConcurrency\":1,\"timeout\":60000,\"queryDepth\":15,\"circularQueryLimit\":5,\"typePrefix\":\"Wp\"}},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Graduate Fashion Week\",\"short_name\":\"GFW\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"content/assets/gatsby-icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"4a9773549091c227cd2eb82ccd9c5e3a\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-N3ZH6Y8YPV\",\"AW-CONVERSION_ID\",\"DC-FLOODIGHT_ID\"],\"gtagConfig\":{\"optimize_id\":\"OPT_CONTAINER_ID\",\"anonymize_ip\":true,\"cookie_expires\":0},\"pluginConfig\":{\"head\":false,\"respectDNT\":true,\"exclude\":[\"/preview/**\",\"/do-not-track/me/too/\"]}},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"G-N3ZH6Y8YPV\",\"includeInDevelopment\":false,\"defaultDataLayer\":{\"type\":\"object\",\"value\":{\"platform\":\"gatsby\"}},\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","module.exports = null","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i&&i.push(e)||n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&i.splice(i.indexOf(e)>>>0,1)},emit:function(t,e){(n.get(t)||[]).slice().map(function(n){n(e)}),(n.get(\"*\")||[]).slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.es.js.map\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(pageData.path, {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n // window.___webpackCompilationHash gets set in production-app.js after navigationInit() is called\n // So on a direct visit of a page with a browser redirect this check is truthy and thus the codepath is hit\n // While the resource actually exists, but only too late\n // TODO: This should probably be fixed by setting ___webpackCompilationHash before navigationInit() is called\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
\");\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
\");\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","// custom typefaces\nimport \"@fontsource/barlow-condensed/400.css\"\nimport \"@fontsource/barlow-condensed/500.css\"\nimport \"@fontsource/barlow-condensed/600.css\"\n\nimport SwiperCore, { Navigation, Scrollbar, EffectCoverflow, Autoplay } from \"swiper\"\n\n// Import Swiper styles\nimport \"swiper/swiper.scss\"\nimport \"swiper/components/navigation/navigation.scss\"\nimport \"swiper/components/pagination/pagination.scss\"\nimport \"swiper/components/scrollbar/scrollbar.scss\"\n\n// install Swiper components\nSwiperCore.use([Navigation, Scrollbar, EffectCoverflow, Autoplay])\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\n\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\n }\n}","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.substr(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(stripIndent`\n The requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set()\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\n childImageSharp?: IGatsbyImageDataParent\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): Partial {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n onLoad,\n ref,\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer: string | null = null\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && \n }\n \n )\n }\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n innerRef: LegacyRef\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n innerRef,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture = forwardRef(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\n ) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n }\n)\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef(\n function MainImage(props, ref) {\n return (\n <>\n \n \n \n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return {children}\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n if (preactClass) {\n className = preactClass\n }\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return (\n \n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n undefined,\n undefined,\n undefined,\n imgStyle\n )}\n />\n \n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: () => void\n onError?: () => void\n onStartLoad?: (props: { wasCached?: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject = { current: false }\n forceRender: MutableRefObject = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading || hasImageLoaded(cacheKey),\n isLoaded: state.isLoaded || hasImageLoaded(cacheKey),\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n \n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return \n }\n\nGatsbyImage.propTypes = propTypes\n\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return {element}\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapRootElement = exports.onInitialClientRender = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styles = require(\"@material-ui/styles\");\n\nvar _materialUiPluginCacheEndpoint = _interopRequireDefault(require(\"material-ui-plugin-cache-endpoint\"));\n\nvar _utils = require(\"./utils\");\n\nvar onInitialClientRender = function onInitialClientRender() {\n if (process.env.BUILD_STAGE === \"develop\") {\n return;\n } // Remove the server-side injected CSS.\n\n\n var jssStyles = document.querySelector(\"#jss-server-side\");\n\n if (jssStyles) {\n jssStyles.parentNode.removeChild(jssStyles);\n }\n};\n\nexports.onInitialClientRender = onInitialClientRender;\n\nvar wrapRootElement = function wrapRootElement(_ref, pluginOptions) {\n var element = _ref.element;\n\n if ((0, _utils.hasEntries)(_materialUiPluginCacheEndpoint.default) && pluginOptions.stylesProvider) {\n throw new Error(\"You specified both pathToStylesProvider and stylesProvider in gatsby-config.js. Remove one of them.\");\n }\n\n var stylesProvider = (0, _utils.hasEntries)(_materialUiPluginCacheEndpoint.default) ? _materialUiPluginCacheEndpoint.default : pluginOptions.stylesProvider;\n\n if (!stylesProvider) {\n return element;\n }\n\n return /*#__PURE__*/_react.default.createElement(_styles.StylesProvider, stylesProvider, element);\n};\n\nexports.wrapRootElement = wrapRootElement;","\"use strict\";\n\nexports.__esModule = true;\nexports.hasEntries = hasEntries;\n\nfunction hasEntries(object) {\n if (!object) return false;\n return Object.entries(object).length > 0;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\");\n\n// eslint-disable-next-line react/prop-types,react/display-name\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n function LocationProvider() {\n var _temp, _this, _ret;\n _classCallCheck(this, LocationProvider);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n var refs = this.state.refs,\n history = this.props.history;\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n return RouterImpl;\n}(React.PureComponent);\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n _classCallCheck(this, FocusHandlerImpl);\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n var requestFocus = this.props.requestFocus;\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n return FocusHandlerImpl;\n}(React.Component);\npolyfill(FocusHandlerImpl);\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n return RedirectImpl;\n}(React.Component);\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.location;\n};\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.navigate;\n};\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","push","popstateListener","action","addEventListener","removeEventListener","filter","fn","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","indexOf","initialLocation","substr","index","stack","states","name","entries","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","document","createElement","globalHistory","exports","__esModule","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","obj","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","keys","every","injectFirstNode","jss","generateClassName","sheetsManager","Map","defaultOptions","disableGeneration","sheetsCache","sheetsRegistry","StylesContext","StylesProvider","props","children","_props$injectFirst","injectFirst","_props$disableGenerat","localOptions","outerOptions","context","insertionPoint","head","createComment","insertBefore","firstChild","plugins","Provider","hasSymbol","Symbol","for","pseudoClasses","createGenerateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","ruleCounter","getNextCounterId","rule","styleSheet","link","prefix","theme","getThemeProps","propName","defaultProps","createStyles","styles","ServerStyleSheets","this","serverGenerateClassName","toString","id","dangerouslySetInnerHTML","__html","omit","input","fields","output","prop","styled","Component","style","stylesOptions","filterProps","classNamePrefix","stylesOrCreator","root","useStyles","makeStyles","displayName","propTypes","StyledComponent","ref","classNameProp","className","clone","ComponentProp","component","other","classes","spread","FinalComponent","localTheme","outerTheme","useTheme","mergeOuterLocalTheme","nested","ThemeContext","withThemeCreator","defaultTheme","withTheme","WithTheme","innerRef","fnValuesNs","fnRuleNs","onCreateRule","decl","onProcessStyle","fnValues","onUpdate","data","sheet","styleRule","fnRule","_prop","at","atPrefix","GlobalContainerRule","selector","type","isProcessed","rules","parent","add","process","_proto","getRule","get","addRule","onProcessRule","replaceRule","newRule","GlobalPrefixedRule","createRule","separatorRegExp","addScope","scope","parts","scoped","trim","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","refRegExp","getReplaceRef","container","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","result","j","getOptions","prevOptions","nestingLevel","replaceRef","isNested","isNestedConditional","uppercasePattern","msPattern","cache","toHyphenLower","toLowerCase","hName","convertCase","converted","fallbacks","isArray","onChangeValue","hyphenatedProp","px","CSS","ms","percent","addCamelCasedVersion","regExp","str","toUpperCase","newObj","units","border","margin","padding","height","width","bottom","left","top","right","inset","motion","outline","perspective","size","gap","grid","iterate","innerProp","_innerProp","isNaN","unit","camelCasedOptions","js","css","vendor","browser","isTouch","documentElement","jsCssMap","Moz","O","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","c","camelize","pascalize","el","mask","longhand","textOrientation","transform","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","substring","overscrollBehavior","propMap","order","flex2012","propMap$1","flex","propKeys","prefixCss","p","flex2009","multiple","propertyDetectors","apply","computed","getComputedStyle","key$1","x","err","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","property","parseInt","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","prop0","prop1","newStyle","jssPreset","set","key1","key2","subCache","delete","indexCounter","increment","getStylesCreator","themingEnabled","create","overrides","stylesWithOverrides","deepmerge","getClasses","cacheClasses","lastProp","lastJSS","generate","mergeClasses","baseClasses","newClasses","attach","_ref2","stylesCreator","sheetManager","refs","staticSheet","dynamicStyles","flip","direction","generateId","createStyleSheet","dynamicSheet","update","_ref3","detach","_ref4","removeStyleSheet","remove","useSynchronousEffect","func","values","currentKey","current","classNamePrefixOption","_options$defaultTheme","stylesOptions2","meta","instance","shouldUpdate","nextClasses","_options$withTheme","WithStyles","more","isPlainObject","item","constructor","camelCase","TypeError","pascalCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","m","charAt","module","r","t","f","n","strings","raw","_createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_templateObject","freeze","_classCallCheck","TemplateTag","_this","transformers","tag","_len2","expressions","_key2","interimTag","bind","transformEndResult","transformString","processSubstitutions","transformer","previousTag","template","_len3","substitutions","_key3","resultSoFar","remainingPart","substitution","transformSubstitution","shift","onString","onSubstitution","endResult","onEndResult","defaults","separator","conjunction","serial","opts","arrayLength","indent","separatorIndex","lastIndexOf","_toConsumableArray","arr","arr2","min","regexp","RegExp","Error","side","splitBy","includes","isValidValue","Number","replaceWhat","replaceWith","matchOperatorsRe","_interopRequireDefault","pluginOptions","cb","clickHandler","routeThroughBrowserOrApp","hashShouldBeFollowed","pathIsNotHandledByApp","urlsAreOnSameOrigin","authorIsForcingNavigation","anchorsTargetIsEquivalentToSelf","findClosestAnchor","navigationWasHandledElsewhere","slashedPathname","userIsForcingNavigation","_escapeStringRegexp","_gatsby","event","button","altKey","ctrlKey","metaKey","shiftKey","defaultPrevented","node","parentNode","nodeName","anchor","hasAttribute","ownerDocument","defaultView","destination","pathStartRegEx","hrefHandler","___failedResources","clickedAnchor","SVGAnimatedString","animVal","withPrefix","excludePattern","preventDefault","destinationPathname","_catchLinks","onClientEntry","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","d","g","h","k","v","w","y","z","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_typeof","iterator","isBrowser","nodeType","plainObjectConstrurctor","cloneStyle","declCopy","by","toCssValue","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","toCss","_options$indent","Infinity","_getWhitespaceSymbols","fallback","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","escape","BaseStyleRule","Renderer","renderer","force","newValue","isEmpty","isDefined","renderable","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","selectorText","_proto2","applyTo","json","toJSON","setSelector","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","RuleList","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","findReferencedKeyframe","val","keyframes","refKeyframe","pluginKeyframesRule","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","counter","ruleOptions","_this$options","register","splice","oldRule","oldIndex","nameOrSelector","unregister","updateOne","_this$options2","nextValue","_nextValue","_prevValue","StyleSheet","deployed","deploy","queue","insertRule","deleteRule","addRules","added","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","plugin","SheetsRegistry","reset","_temp","sheets","globalThis$1","globalThis","self","Function","ns","moduleId","createGenerateId","jssId","String","minify","memoize","getPropertyValue","cssRule","attributeStyleMap","indexOfImportantFlag","cssValueWithoutImportantFlag","getHead","querySelector","findPrevNode","findHigherSheet","element","findHighestSheet","nextSibling","comment","text","childNodes","nodeValue","findCommentNode","getNonce","getAttribute","_insertRule","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","textContent","setAttribute","nonce","nextNode","insertionPointElement","appendChild","insertStyle","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","version","setup","createJss","hasCSSTOMSupport","getDynamicStyles","extracted","objA","objB","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","isObject","extend","src","ssrDocument","body","activeElement","blur","querySelectorAll","getElementById","createEvent","initEvent","getElementsByTagName","createElementNS","importNode","getDocument","doc","ssrWindow","navigator","userAgent","back","CustomEvent","Image","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","W","M","C","K","I","B","J","F","G","charCodeAt","N","ca","H","X","D","da","ea","fa","L","P","Y","E","ha","Q","ia","Z","ja","ka","aa","ba","la","ma","R","na","oa","S","U","T","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","reactPropsRegex","arg","o","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","groupSizes","Uint32Array","indexOfGroup","s","clearGroup","getGroup","V","has","registerName","getTag","$","createTextNode","styleSheets","ownerNode","cssText","nodes","isServer","useCSSOMInjection","gs","names","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","Set","clearNames","clear","clearRules","clearTag","fromCharCode","ee","abs","te","ne","re","oe","se","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","Ne","ie","ae","ce","ue","le","Consumer","de","he","pe","fe","me","ye","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","ve","inject","getName","ge","Se","we","Ee","be","_e","isReactComponent","isCss","Ae","Ce","Re","De","je","Te","xe","ke","Ve","Be","ze","Me","Ge","Le","Fe","Ye","qe","attrs","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","as","withComponent","_foldedDefaultProps","He","withConfig","$e","removeStyles","renderStyles","We","JSON","stringify","Ue","Je","_emitSheetCSS","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","Xe","Ze","Ke","masterSheet","support","device","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","platform","ua","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","on","init","resizeObserver","destroy","Observer","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","$el","parents","observeSlideChildren","$wrapperEl","disconnect","events","handler","priority","method","eventsListeners","once","onceHandler","off","__emitterProxy","args","onAny","eventsAnyListeners","offAny","eventHandler","unshift","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionLabel","getDirectionPropertyValue","label","parseFloat","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","slidesPerColumn","floor","ceil","slidesPerView","slidesPerColumnFill","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","eq","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","outerWidth","outerHeight","paddingLeft","paddingRight","boxSizing","_slide$","offsetWidth","swiperSlideSize","centeredSlides","slidesPerGroupSkip","effect","setWrapperSize","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","setTransition","getSlideByIndex","visibleSlides","each","activeIndex","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","removeClass","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","addClass","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","find","loop","hasClass","slideDuplicateClass","nextSlide","nextAll","prevSlide","prevAll","attr","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","closest","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","previousTranslate","translateTo","runCallbacks","translateBounds","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","slideTo","initial","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","loopedSlides","slideNext","loopPreventsSlide","loopFix","_clientLeft","clientLeft","slidePrev","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","append","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","prepend","diff","loopDestroy","removeAttr","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","is","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","cancelable","touchMoveStopPropagation","stopPropagation","startTranslate","trigger","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","capture","start","move","end","passiveListeners","passive","cancel","simulateTouch","updateOnWindowResize","detachEvents","addClasses","resultClasses","classNames","suffixes","containerModifierClass","emitContainerClasses","removeClasses","createElements","url","breakpointsBase","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","_defineProperties","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","duration","dir","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","_points$i","matches","wasLocked","lastSlidePosition","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","__swiper__","moduleParamName","auto","desktop","swiperParams","passedParams","eventName","touchEventsTouch","touchEventsDesktop","clickTimeout","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","pagination","clickable","contains","isHidden","toggleClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","timeout","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","offset","onDragStart","getBoundingClientRect","dragTimeout","onDragMove","returnValue","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","_getPrototypeOf","setPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","Dom7","_Array","subClass","superClass","items","proto","ReferenceError","_assertThisInitialized","arrayFlat","arrayFilter","html","toCreate","tempParent","innerHTML","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","_el$classList","classList","_el$classList2","_len4","_key4","toggle","attrName","removeAttribute","transitionDuration","_len5","_key5","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","handlers","dom7proxy","_len9","_key9","evt","detail","bubbles","dataIndex","dispatchEvent","dom","fireCallBack","includeMargins","_styles","_styles2","box","clientTop","scrollY","scrollX","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","next","nextElementSibling","nextEls","_next","prev","previousElementSibling","prevEls","_prev","_parent","foundElements","found","methodName","deleteProps","object","nextTick","delay","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","bindModuleMethods","subKey","createElementIfNotDefined","$container","checkProps","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","Location","GatsbyLink","_location","_React$Component","defaultGetProps","isPartiallyCurrent","isCurrent","IOSupported","IntersectionObserver","handleRef","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","_this2","entry","isIntersecting","intersectionRatio","_this3","_this$props","_this$props$getProps","getProps","_onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","shouldReplace","___navigate","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","nodeInterop","_getRequireWildcardCache","hasPropertyDescriptor","_interopRequireWildcard","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","_saveScroll","windowScroll","shouldUpdateScroll","scrollToHash","scrollIntoView","prevRouterProps","routerProps","save","scrollPosition","_this$props$location","read","_this$props$location2","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","parse","storedValue","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","components","require","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","previous","then","all","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","supportedPrefetchStrategy","feature","fakeLink","relList","supports","reject","getElementsByName","req","XMLHttpRequest","open","status","send","preFetched","catch","PageResourceStatus","Success","preferDefault","createPageDataUrl","stripSurroundingSlashes","doFetch","onreadystatechange","readyState","toPageResources","pageData","page","componentChunkName","webpackCompilationHash","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","response","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","rawPath","error","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","overflow","clip","whiteSpace","maybeRedirect","___replace","nextRoute","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","loadResources","setState","nextState","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","message","console","SiteRoot","App","onClientEntryRanRef","performance","mark","ReactDOM","runRender","rootElement","doScroll","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","reg","installingWorker","installing","log","reload","Coverflow","swiperWidth","swiperHeight","coverflowEffect","center","rotate","depth","$slideEl","offsetMultiplier","modifier","rotateY","rotateX","translateZ","stretch","translateY","translateX","scale","slideTransform","round","slideShadows","$shadowBeforeEl","$shadowAfterEl","beforeInit","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","touchEnd","SwiperCore","EffectCoverflow","gtag","excludeGtagPaths","rx","sendPageView","page_path","listOfMetricsSend","debounce","timer","sendWebVitals","dataLayerName","sendData","dataLayer","webVitalsMeasurement","getLCP","getFID","getCLS","debouncedCLS","debouncedFID","debouncedLCP","routeChangeEventName","onInitialClientRender","enableWebVitalsTracking","imageCache","hasNativeLazyLoadSupport","HTMLImageElement","GATSBY___IMAGE","storeImageloaded","hasImageLoaded","getMainProps","isLoading","isLoaded","loading","toggleLoaded","dataset","objectFit","objectPosition","objectFitPolyfill","import","shouldLoad","onLoad","currentTarget","img","decode","getPlaceholderProps","placeholder","layout","backgroundColor","wrapperStyle","Sizer","paddingTop","maxWidth","alt","role","LayoutWrapper","srcSet","decoding","Picture","sources","fallbackImage","PropTypes","Placeholder","_Picture$propTypes","componentName","MainImage","altValidator","GatsbyImageHydrator","createRef","hydrated","forceRender","NODE_ENV","lazyHydrator","unobserveRef","_lazyHydrate","hasSSRHtml","lazyHydrate","toggleIsLoaded","_setupIntersectionObserver","useCache","intersectionObserver","createIntersectionObserver","_this4","onStartLoad","wasCached","hasChanged","_this5","ssrElement","Type","wStyle","wClass","wrapperProps","class","sizer","suppressHydrationWarning","GatsbyImage","warn","propsKey","checkDimensionProps","validLayouts","StaticImage","GatsbyImageBrowser","imageData","__imageData","__error","LaterHydrator","wrapRootElement","localizedManifests","defaultFilename","localizedManifest","app","start_url","lang","_materialUiPluginCacheEndpoint","jssStyles","hasEntries","stylesProvider","_styledComponents","StyleSheetManager","_objectWithoutProperties","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","getContext","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","array","createRoute","FocusWrapper","FocusHandler","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","focus","myURIChanged","navigatedUpToMe","_props2","_props2$component","Comp","tabIndex","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useMatch","stripSlashes","elementPath","condition","argIndex","framesToPop","excluded","sourceKeys","_arrayLikeToArray","_inheritsLoose","_iterableToArray","iter","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutPropertiesLoose","arrayLikeToArray","iterableToArray","unsupportedIterableToArray","_toPropertyKey","hint","prim","toPrimitive","_unsupportedIterableToArray","minLen"],"sourceRoot":""}