{"version":3,"file":"app-7a56551e88e10f41e8f1.js","mappings":"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","sources":["webpack://love_and_peace/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/extends.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/typeof.js","webpack://love_and_peace/./node_modules/@babel/runtime/regenerator/index.js","webpack://love_and_peace/./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://love_and_peace/./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://love_and_peace/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://love_and_peace/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://love_and_peace/./node_modules/babel-runtime/core-js/object/assign.js","webpack://love_and_peace/./node_modules/babel-runtime/helpers/extends.js","webpack://love_and_peace/./node_modules/call-bind/callBound.js","webpack://love_and_peace/./node_modules/call-bind/index.js","webpack://love_and_peace/./node_modules/camelcase/index.js","webpack://love_and_peace/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://love_and_peace/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://love_and_peace/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://love_and_peace/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://love_and_peace/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/html/html.js","webpack://love_and_peace/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://love_and_peace/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://love_and_peace/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://love_and_peace/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://love_and_peace/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://love_and_peace/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://love_and_peace/./node_modules/cookie/index.js","webpack://love_and_peace/./node_modules/escape-string-regexp/index.js","webpack://love_and_peace/./node_modules/function-bind/implementation.js","webpack://love_and_peace/./node_modules/function-bind/index.js","webpack://love_and_peace/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://love_and_peace/./node_modules/get-intrinsic/index.js","webpack://love_and_peace/./node_modules/gsap/utils/paths.js","webpack://love_and_peace/./node_modules/gsap/CustomEase.js","webpack://love_and_peace/./node_modules/gsap/gsap-core.js","webpack://love_and_peace/./node_modules/gsap/CSSPlugin.js","webpack://love_and_peace/./node_modules/gsap/index.js","webpack://love_and_peace/./node_modules/has-symbols/index.js","webpack://love_and_peace/./node_modules/has-symbols/shams.js","webpack://love_and_peace/./node_modules/has/src/index.js","webpack://love_and_peace/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://love_and_peace/./node_modules/object-inspect/index.js","webpack://love_and_peace/./node_modules/qs/lib/formats.js","webpack://love_and_peace/./node_modules/qs/lib/index.js","webpack://love_and_peace/./node_modules/qs/lib/parse.js","webpack://love_and_peace/./node_modules/qs/lib/stringify.js","webpack://love_and_peace/./node_modules/qs/lib/utils.js","webpack://love_and_peace/./node_modules/react-cookie/es6/Cookies.js","webpack://love_and_peace/./node_modules/recoil-persist/dist/index.js","webpack://love_and_peace/./node_modules/side-channel/index.js","webpack://love_and_peace/./node_modules/universal-cookie/es6/utils.js","webpack://love_and_peace/./node_modules/universal-cookie/es6/Cookies.js","webpack://love_and_peace/./node_modules/universal-cookie/es6/index.js","webpack://love_and_peace/./node_modules/webfontloader/webfontloader.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack://love_and_peace/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","webpack://love_and_peace/./node_modules/gatsby-link/index.js","webpack://love_and_peace/./node_modules/gatsby-link/parse-path.js","webpack://love_and_peace/./node_modules/gatsby-react-router-scroll/index.js","webpack://love_and_peace/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://love_and_peace/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://love_and_peace/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://love_and_peace/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://love_and_peace/./.cache/api-runner-browser-plugins.js","webpack://love_and_peace/./.cache/api-runner-browser.js","webpack://love_and_peace/./.cache/emitter.js","webpack://love_and_peace/./node_modules/mitt/dist/mitt.mjs","webpack://love_and_peace/./.cache/normalize-page-path.js","webpack://love_and_peace/./.cache/find-path.js","webpack://love_and_peace/./.cache/gatsby-browser-entry.js","webpack://love_and_peace/./.cache/prefetch.js","webpack://love_and_peace/./.cache/loader.js","webpack://love_and_peace/./.cache/page-renderer.js","webpack://love_and_peace/./.cache/route-announcer-props.js","webpack://love_and_peace/./.cache/navigation.js","webpack://love_and_peace/./node_modules/shallow-compare/es/index.js","webpack://love_and_peace/./.cache/ensure-resources.js","webpack://love_and_peace/./.cache/production-app.js","webpack://love_and_peace/./.cache/public-page-renderer-prod.js","webpack://love_and_peace/./.cache/public-page-renderer.js","webpack://love_and_peace/./.cache/react-lifecycles-compat.js","webpack://love_and_peace/./.cache/redirect-utils.js","webpack://love_and_peace/./.cache/register-service-worker.js","webpack://love_and_peace/./.cache/strip-prefix.js","webpack://love_and_peace/./node_modules/react-cookie/es6/CookiesProvider.js","webpack://love_and_peace/./node_modules/react-cookie/es6/CookiesContext.js","webpack://love_and_peace/./gatsby/wrap-with-provider.js","webpack://love_and_peace/./gatsby-browser.js","webpack://love_and_peace/./gatsby/wrap-with-layout.js","webpack://love_and_peace/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://love_and_peace/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://love_and_peace/./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack://love_and_peace/../src/image-utils.ts","webpack://love_and_peace/../src/components/hooks.ts","webpack://love_and_peace/../src/components/layout-wrapper.tsx","webpack://love_and_peace/../src/components/picture.tsx","webpack://love_and_peace/../src/components/placeholder.tsx","webpack://love_and_peace/../src/components/main-image.tsx","webpack://love_and_peace/../src/components/gatsby-image.server.tsx","webpack://love_and_peace/../src/components/gatsby-image.browser.tsx","webpack://love_and_peace/../src/components/static-image.server.tsx","webpack://love_and_peace/../src/components/static-image.tsx","webpack://love_and_peace/../src/components/later-hydrator.tsx","webpack://love_and_peace/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://love_and_peace/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://love_and_peace/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://love_and_peace/src/gatsby-browser.js","webpack://love_and_peace/./node_modules/gatsby-remark-autolink-headers/gatsby-browser.js","webpack://love_and_peace/./src/components/atoms/Image.js","webpack://love_and_peace/./src/components/atoms/Link.js","webpack://love_and_peace/./node_modules/framer-motion/node_modules/tslib/tslib.es6.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/PresenceContext.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/use-constant.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js","webpack://love_and_peace/./node_modules/framesync/dist/es/on-next-frame.js","webpack://love_and_peace/./node_modules/framesync/dist/es/index.js","webpack://love_and_peace/./node_modules/framesync/dist/es/create-render-step.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/noop.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/geometry/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/utils.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/batch-layout.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/components/AnimateSharedLayout/types.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/components/AnimateSharedLayout/utils/batcher.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/SharedLayoutContext.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/use-force-update.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/definitions.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/LazyContext.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/use-features.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/MotionConfigContext.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/MotionContext/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/is-browser.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/is-ref-object.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/variants.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/MotionContext/create.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/context/MotionContext/utils.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/scale-correction.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/transform.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.js","webpack://love_and_peace/./node_modules/style-value-types/node_modules/tslib/tslib.es6.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/utils.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/numbers/units.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/numbers/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/number.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/use-props.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/path.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/use-props.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/use-render.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/render.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/render.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/resolve-value.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/config-motion.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/config-motion.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/types.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/events/use-dom-event.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/utils/event-type.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/events/event-info.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/events/use-pointer-event.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/events/utils.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/pipe.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/gestures.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/shallow-compare.js","webpack://love_and_peace/./node_modules/popmotion/node_modules/tslib/tslib.es6.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/clamp.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/utils/find-spring.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/generators/spring.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/progress.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/mix.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/color/utils.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/color/rgba.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/color/hex.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/color/hsla.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/mix-color.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/color/index.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/complex/index.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/inc.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/mix-complex.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/interpolate.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/easing/utils.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/easing/index.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/generators/keyframes.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/generators/decay.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/utils/elapsed.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/index.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/velocity-per-second.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/time-conversion.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/easing/cubic-bezier.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/easing.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.js","webpack://love_and_peace/./node_modules/style-value-types/dist/es/complex/filter.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/animation/utils/transitions.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/animations/inertia.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/array.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/subscription-manager.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/value/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/test.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/value-types/find.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/setters.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/animation.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/animation-state.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/animations.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/is-point.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/is-point-3d.js","webpack://love_and_peace/./node_modules/popmotion/dist/es/utils/distance.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/PanSession.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/each-axis.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/measure.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/geometry/delta-calc.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/layout/utils.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/is-draggable.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/geometry/delta-apply.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/convert-to-relative.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/drag.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/use-pan-gesture.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/gestures/drag/use-drag.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/default-scale-correctors.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/layout/Animate.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/layout/Measure.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/motion/features/layout/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/state.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/utils/build-projection-transform.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/lifecycles.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/projection.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/flat-tree.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/index.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/utils/motion-values.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/projection/relative-set.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/html/visual-element.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/utils/is-numerical-string.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/svg/visual-element.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/motion.js","webpack://love_and_peace/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.js","webpack://love_and_peace/./src/hooks/useEventListener.js","webpack://love_and_peace/./src/assets/css/layouts/l-header.module.styl","webpack://love_and_peace/./src/components/layouts/Header.js","webpack://love_and_peace/./src/components/layouts/Footer.js","webpack://love_and_peace/./src/assets/css/layouts/l-footer.module.styl","webpack://love_and_peace/./src/components/layouts/Loading.js","webpack://love_and_peace/./src/assets/css/layouts/l-loading.module.styl","webpack://love_and_peace/./node_modules/gsap/ScrollTrigger.js","webpack://love_and_peace/./src/assets/css/atoms/a-animation/index.module.styl","webpack://love_and_peace/./src/components/atoms/animation/Animation.js","webpack://love_and_peace/./src/components/status/ModalMenuState.js","webpack://love_and_peace/./src/components/layouts/ModalMenu.js","webpack://love_and_peace/./src/assets/css/layouts/l-modal-menu.module.styl","webpack://love_and_peace/./src/components/layouts/TransitionLayout.js","webpack://love_and_peace/./src/hooks/useVh.js","webpack://love_and_peace/./src/components/status/PageState.js","webpack://love_and_peace/./src/components/status/UserState.js","webpack://love_and_peace/./node_modules/gsap/ScrollToPlugin.js","webpack://love_and_peace/./src/hooks/useSmoothScroll.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/bind.js","webpack://love_and_peace/./node_modules/axios/lib/utils.js","webpack://love_and_peace/./node_modules/axios/lib/core/AxiosError.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/toFormData.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/buildURL.js","webpack://love_and_peace/./node_modules/axios/lib/core/InterceptorManager.js","webpack://love_and_peace/./node_modules/axios/lib/platform/browser/index.js","webpack://love_and_peace/./node_modules/axios/lib/defaults/transitional.js","webpack://love_and_peace/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://love_and_peace/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://love_and_peace/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://love_and_peace/./node_modules/axios/lib/defaults/index.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://love_and_peace/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://love_and_peace/./node_modules/axios/lib/core/transformData.js","webpack://love_and_peace/./node_modules/axios/lib/cancel/isCancel.js","webpack://love_and_peace/./node_modules/axios/lib/cancel/CanceledError.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/cookies.js","webpack://love_and_peace/./node_modules/axios/lib/core/buildFullPath.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/combineURLs.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/speedometer.js","webpack://love_and_peace/./node_modules/axios/lib/adapters/xhr.js","webpack://love_and_peace/./node_modules/axios/lib/adapters/adapters.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/null.js","webpack://love_and_peace/./node_modules/axios/lib/core/settle.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://love_and_peace/./node_modules/axios/lib/core/dispatchRequest.js","webpack://love_and_peace/./node_modules/axios/lib/core/mergeConfig.js","webpack://love_and_peace/./node_modules/axios/lib/env/data.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/validator.js","webpack://love_and_peace/./node_modules/axios/lib/core/Axios.js","webpack://love_and_peace/./node_modules/axios/lib/cancel/CancelToken.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://love_and_peace/./node_modules/axios/lib/axios.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/spread.js","webpack://love_and_peace/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://love_and_peace/./src/utility/get.js","webpack://love_and_peace/./src/services/auth.js","webpack://love_and_peace/./src/utility/UrlData.js","webpack://love_and_peace/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://love_and_peace/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://love_and_peace/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://love_and_peace/./node_modules/invariant/browser.js","webpack://love_and_peace/./node_modules/regenerator-runtime/runtime.js","webpack://love_and_peace/./src/assets/images/Common__icn__sp-login.svg","webpack://love_and_peace/./src/assets/images/Loading__logo__love-peace-1.svg","webpack://love_and_peace/./src/assets/images/Loading__logo__love-peace-2.svg","webpack://love_and_peace/./src/assets/images/Loading__logo__love-peace-3.svg","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://love_and_peace/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js"],"sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|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|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|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|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 index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar 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\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\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};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\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\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\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\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// Stores history entries in memory for testing or other platforms like Native\n\n\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\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\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\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\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\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\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;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\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.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\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\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\n var dynamicMatch = paramRe.exec(routeSegment);\n\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\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\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.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\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\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\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\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\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\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};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\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// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\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};\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};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\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\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\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 */\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;","module.exports = {\n \"default\": require(\"core-js/library/fn/object/assign\"),\n __esModule: true\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","'use strict';\n\nvar preserveCamelCase = function preserveCamelCase(string) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < string.length; i++) {\n var character = string[i];\n\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\n return string;\n};\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\n options = Object.assign({\n pascalCase: false\n }, options);\n\n var postProcess = function postProcess(x) {\n return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n };\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\n if (input.length === 0) {\n return '';\n }\n\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n\n var hasUpperCase = input !== input.toLowerCase();\n\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\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};\n\nmodule.exports = camelCase; // TODO: Remove this for the next major release\n\nmodule.exports.default = camelCase;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\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 * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\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\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\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\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\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\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\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\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\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\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 }, {\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 * 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 }, {\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\n return this.transformers.reduce(cb, str);\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 }, {\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\n return this.transformers.reduce(cb, substitution);\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 }, {\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\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\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 */\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; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\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\n return substitution;\n }\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\n return arr2;\n } else {\n return Array.from(arr);\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 */\n\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\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\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\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\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\n return substitution;\n }\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};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\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 } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\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\n return endResult.replace(replaceWhat, replaceWith);\n }\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;","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n'use strict';\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {};\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('='); // skip things that don't look like key=value\n\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim();\n var val = pair.substr(++eq_idx, pair.length).trim(); // quoted values\n\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n } // only assign once\n\n\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid');\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","\"use strict\";\n\nmodule.exports = Object.assign;","'use strict';\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","/*!\n * paths 3.6.1\n * https://greensock.com\n *\n * Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _svgPathExp = /[achlmqstvz]|(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _numbersExp = /(?:(-)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _scientific = /[\\+\\-]?\\d*\\.?\\d+e[\\+\\-]?\\d+/ig,\n _selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/i,\n _DEG2RAD = Math.PI / 180,\n _RAD2DEG = 180 / Math.PI,\n _sin = Math.sin,\n _cos = Math.cos,\n _abs = Math.abs,\n _sqrt = Math.sqrt,\n _atan2 = Math.atan2,\n _largeNum = 1e8,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _temp = {},\n _temp2 = {},\n _roundingNum = 1e5,\n _wrapProgress = function _wrapProgress(progress) {\n return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1);\n},\n //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case.\n_round = function _round(value) {\n return Math.round(value * _roundingNum) / _roundingNum || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 1e10) / 1e10 || 0;\n},\n _splitSegment = function _splitSegment(rawPath, segIndex, i, t) {\n var segment = rawPath[segIndex],\n shift = t === 1 ? 6 : subdivideSegment(segment, i, t);\n\n if (shift && shift + i + 2 < segment.length) {\n rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));\n segment.splice(0, i + shift);\n return 1;\n }\n},\n _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) {\n var i = rawPath.length;\n skipOuter || rawPath.reverse();\n\n while (i--) {\n rawPath[i].reversed || reverseSegment(rawPath[i]);\n }\n},\n _copyMetaData = function _copyMetaData(source, copy) {\n copy.totalLength = source.totalLength;\n\n if (source.samples) {\n //segment\n copy.samples = source.samples.slice(0);\n copy.lookup = source.lookup.slice(0);\n copy.minLength = source.minLength;\n copy.resolution = source.resolution;\n } else if (source.totalPoints) {\n //rawPath\n copy.totalPoints = source.totalPoints;\n }\n\n return copy;\n},\n //pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments)\n_appendOrMerge = function _appendOrMerge(rawPath, segment) {\n var index = rawPath.length,\n prevSeg = rawPath[index - 1] || [],\n l = prevSeg.length;\n\n if (index && segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) {\n segment = prevSeg.concat(segment.slice(2));\n index--;\n }\n\n rawPath[index] = segment;\n},\n _bestDistance;\n/* TERMINOLOGY\n - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple \"M\" commands, defining Segments (paths aren't always connected).\n - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points.\n - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor.\n - the variable \"t\" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the \"p\" or \"progress\" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. \"t\" is ONLY in an individual Bezier piece.\n */\n//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check).\n\n\nexport function getRawPath(value) {\n value = _isString(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value;\n var e = value.getAttribute ? value : 0,\n rawPath;\n\n if (e && (value = value.getAttribute(\"d\"))) {\n //implements caching\n if (!e._gsPath) {\n e._gsPath = {};\n }\n\n rawPath = e._gsPath[value];\n return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value);\n }\n\n return !value ? console.warn(\"Expecting a element or an SVG path data string\") : _isString(value) ? stringToRawPath(value) : _isNumber(value[0]) ? [value] : value;\n} //copies a RawPath WITHOUT the length meta data (for speed)\n\nexport function copyRawPath(rawPath) {\n var a = [],\n i = 0;\n\n for (; i < rawPath.length; i++) {\n a[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0));\n }\n\n return _copyMetaData(rawPath, a);\n}\nexport function reverseSegment(segment) {\n var i = 0,\n y;\n segment.reverse(); //this will invert the order y, x, y, x so we must flip it back.\n\n for (; i < segment.length; i += 2) {\n y = segment[i];\n segment[i] = segment[i + 1];\n segment[i + 1] = y;\n }\n\n segment.reversed = !segment.reversed;\n}\n\nvar _createPath = function _createPath(e, ignore) {\n var path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"),\n attr = [].slice.call(e.attributes),\n i = attr.length,\n name;\n ignore = \",\" + ignore + \",\";\n\n while (--i > -1) {\n name = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird.\n\n if (ignore.indexOf(\",\" + name + \",\") < 0) {\n path.setAttributeNS(null, name, attr[i].nodeValue);\n }\n }\n\n return path;\n},\n _typeAttrs = {\n rect: \"rx,ry,x,y,width,height\",\n circle: \"r,cx,cy\",\n ellipse: \"rx,ry,cx,cy\",\n line: \"x1,x2,y1,y2\"\n},\n _attrToObj = function _attrToObj(e, attrs) {\n var props = attrs ? attrs.split(\",\") : [],\n obj = {},\n i = props.length;\n\n while (--i > -1) {\n obj[props[i]] = +e.getAttribute(props[i]) || 0;\n }\n\n return obj;\n}; //converts an SVG shape like , , , , , etc. to a , swapping it in and copying the attributes to match.\n\n\nexport function convertToPath(element, swap) {\n var type = element.tagName.toLowerCase(),\n circ = 0.552284749831,\n data,\n x,\n y,\n r,\n ry,\n path,\n rcirc,\n rycirc,\n points,\n w,\n h,\n x2,\n x3,\n x4,\n x5,\n x6,\n y2,\n y3,\n y4,\n y5,\n y6,\n attr;\n\n if (type === \"path\" || !element.getBBox) {\n return element;\n }\n\n path = _createPath(element, \"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points\");\n attr = _attrToObj(element, _typeAttrs[type]);\n\n if (type === \"rect\") {\n r = attr.rx;\n ry = attr.ry || r;\n x = attr.x;\n y = attr.y;\n w = attr.width - r * 2;\n h = attr.height - ry * 2;\n\n if (r || ry) {\n //if there are rounded corners, render cubic beziers\n x2 = x + r * (1 - circ);\n x3 = x + r;\n x4 = x3 + w;\n x5 = x4 + r * circ;\n x6 = x4 + r;\n y2 = y + ry * (1 - circ);\n y3 = y + ry;\n y4 = y3 + h;\n y5 = y4 + ry * circ;\n y6 = y4 + ry;\n data = \"M\" + x6 + \",\" + y3 + \" V\" + y4 + \" C\" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(\",\") + \"z\";\n } else {\n data = \"M\" + (x + w) + \",\" + y + \" v\" + h + \" h\" + -w + \" v\" + -h + \" h\" + w + \"z\";\n }\n } else if (type === \"circle\" || type === \"ellipse\") {\n if (type === \"circle\") {\n r = ry = attr.r;\n rycirc = r * circ;\n } else {\n r = attr.rx;\n ry = attr.ry;\n rycirc = ry * circ;\n }\n\n x = attr.cx;\n y = attr.cy;\n rcirc = r * circ;\n data = \"M\" + (x + r) + \",\" + y + \" C\" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(\",\") + \"z\";\n } else if (type === \"line\") {\n data = \"M\" + attr.x1 + \",\" + attr.y1 + \" L\" + attr.x2 + \",\" + attr.y2; //previously, we just converted to \"Mx,y Lx,y\" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue.\n } else if (type === \"polyline\" || type === \"polygon\") {\n points = (element.getAttribute(\"points\") + \"\").match(_numbersExp) || [];\n x = points.shift();\n y = points.shift();\n data = \"M\" + x + \",\" + y + \" L\" + points.join(\",\");\n\n if (type === \"polygon\") {\n data += \",\" + x + \",\" + y + \"z\";\n }\n }\n\n path.setAttribute(\"d\", rawPathToString(path._gsRawPath = stringToRawPath(data)));\n\n if (swap && element.parentNode) {\n element.parentNode.insertBefore(path, element);\n element.parentNode.removeChild(element);\n }\n\n return path;\n} //returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent)\n\nexport function getRotationAtProgress(rawPath, progress) {\n var d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9);\n return getRotationAtBezierT(d.segment, d.i, d.t);\n}\n\nfunction getRotationAtBezierT(segment, i, t) {\n var a = segment[i],\n b = segment[i + 2],\n c = segment[i + 4],\n x;\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n x = b + (c + (segment[i + 6] - c) * t - b) * t - a;\n a = segment[i + 1];\n b = segment[i + 3];\n c = segment[i + 5];\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n return _round(_atan2(b + (c + (segment[i + 7] - c) * t - b) * t - a, x) * _RAD2DEG);\n}\n\nexport function sliceRawPath(rawPath, start, end) {\n end = _isUndefined(end) ? 1 : _roundPrecise(end) || 0; // we must round to avoid issues like 4.15 / 8 = 0.8300000000000001 instead of 0.83 or 2.8 / 5 = 0.5599999999999999 instead of 0.56 and if someone is doing a loop like start: 2.8 / 0.5, end: 2.8 / 0.5 + 1.\n\n start = _roundPrecise(start) || 0;\n var loops = Math.max(0, ~~(_abs(end - start) - 1e-8)),\n path = copyRawPath(rawPath);\n\n if (start > end) {\n start = 1 - start;\n end = 1 - end;\n\n _reverseRawPath(path);\n\n path.totalLength = 0;\n }\n\n if (start < 0 || end < 0) {\n var offset = Math.abs(~~Math.min(start, end)) + 1;\n start += offset;\n end += offset;\n }\n\n path.totalLength || cacheRawPathMeasurements(path);\n var wrap = end > 1,\n s = getProgressData(path, start, _temp, true),\n e = getProgressData(path, end, _temp2),\n eSeg = e.segment,\n sSeg = s.segment,\n eSegIndex = e.segIndex,\n sSegIndex = s.segIndex,\n ei = e.i,\n si = s.i,\n sameSegment = sSegIndex === eSegIndex,\n sameBezier = ei === si && sameSegment,\n wrapsBehind,\n sShift,\n eShift,\n i,\n copy,\n totalSegments,\n l,\n j;\n\n if (wrap || loops) {\n wrapsBehind = eSegIndex < sSegIndex || sameSegment && ei < si || sameBezier && e.t < s.t;\n\n if (_splitSegment(path, sSegIndex, si, s.t)) {\n sSegIndex++;\n\n if (!wrapsBehind) {\n eSegIndex++;\n\n if (sameBezier) {\n e.t = (e.t - s.t) / (1 - s.t);\n ei = 0;\n } else if (sameSegment) {\n ei -= si;\n }\n }\n }\n\n if (1 - (end - start) < 1e-5) {\n eSegIndex = sSegIndex - 1;\n } else if (!e.t && eSegIndex) {\n eSegIndex--;\n } else if (_splitSegment(path, eSegIndex, ei, e.t) && wrapsBehind) {\n sSegIndex++;\n }\n\n if (s.t === 1) {\n sSegIndex = (sSegIndex + 1) % path.length;\n }\n\n copy = [];\n totalSegments = path.length;\n l = 1 + totalSegments * loops;\n j = sSegIndex;\n l += (totalSegments - sSegIndex + eSegIndex) % totalSegments;\n\n for (i = 0; i < l; i++) {\n _appendOrMerge(copy, path[j++ % totalSegments]);\n }\n\n path = copy;\n } else {\n eShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t);\n\n if (start !== end) {\n sShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t);\n sameSegment && (eShift += sShift);\n eSeg.splice(ei + eShift + 2);\n (sShift || si) && sSeg.splice(0, si + sShift);\n i = path.length;\n\n while (i--) {\n //chop off any extra segments\n (i < sSegIndex || i > eSegIndex) && path.splice(i, 1);\n }\n } else {\n eSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0!\n\n ei += eShift;\n s = eSeg[ei];\n e = eSeg[ei + 1];\n eSeg.length = eSeg.totalLength = 0;\n eSeg.totalPoints = path.totalPoints = 8;\n eSeg.push(s, e, s, e, s, e, s, e);\n }\n }\n\n path.totalLength = 0;\n return path;\n} //measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a \"samples\" Array that has the length up to each of those sample points (always increasing from the start) as well as a \"lookup\" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a \"totalLength\" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value.\n\nfunction measureSegment(segment, startIndex, bezierQty) {\n startIndex = startIndex || 0;\n\n if (!segment.samples) {\n segment.samples = [];\n segment.lookup = [];\n }\n\n var resolution = ~~segment.resolution || 12,\n inc = 1 / resolution,\n endIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length,\n x1 = segment[startIndex],\n y1 = segment[startIndex + 1],\n samplesIndex = startIndex ? startIndex / 6 * resolution : 0,\n samples = segment.samples,\n lookup = segment.lookup,\n min = (startIndex ? segment.minLength : _largeNum) || _largeNum,\n prevLength = samples[samplesIndex + bezierQty * resolution - 1],\n length = startIndex ? samples[samplesIndex - 1] : 0,\n i,\n j,\n x4,\n x3,\n x2,\n xd,\n xd1,\n y4,\n y3,\n y2,\n yd,\n yd1,\n inv,\n t,\n lengthIndex,\n l,\n segLength;\n samples.length = lookup.length = 0;\n\n for (j = startIndex + 2; j < endIndex; j += 6) {\n x4 = segment[j + 4] - x1;\n x3 = segment[j + 2] - x1;\n x2 = segment[j] - x1;\n y4 = segment[j + 5] - y1;\n y3 = segment[j + 3] - y1;\n y2 = segment[j + 1] - y1;\n xd = xd1 = yd = yd1 = 0;\n\n if (_abs(x4) < 1e-5 && _abs(y4) < 1e-5 && _abs(x2) + _abs(y2) < 1e-5) {\n //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length)\n if (segment.length > 8) {\n segment.splice(j, 6);\n j -= 6;\n endIndex -= 6;\n }\n } else {\n for (i = 1; i <= resolution; i++) {\n t = inc * i;\n inv = 1 - t;\n xd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t);\n yd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t);\n l = _sqrt(yd * yd + xd * xd);\n\n if (l < min) {\n min = l;\n }\n\n length += l;\n samples[samplesIndex++] = length;\n }\n }\n\n x1 += x4;\n y1 += y4;\n }\n\n if (prevLength) {\n prevLength -= length;\n\n for (; samplesIndex < samples.length; samplesIndex++) {\n samples[samplesIndex] += prevLength;\n }\n }\n\n if (samples.length && min) {\n segment.totalLength = segLength = samples[samples.length - 1] || 0;\n segment.minLength = min;\n l = lengthIndex = 0;\n\n for (i = 0; i < segLength; i += min) {\n lookup[l++] = samples[lengthIndex] < i ? ++lengthIndex : lengthIndex;\n }\n } else {\n segment.totalLength = samples[0] = 0;\n }\n\n return startIndex ? length - samples[startIndex / 2 - 1] : length;\n}\n\nexport function cacheRawPathMeasurements(rawPath, resolution) {\n var pathLength, points, i;\n\n for (i = pathLength = points = 0; i < rawPath.length; i++) {\n rawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor)\n\n points += rawPath[i].length;\n pathLength += measureSegment(rawPath[i]);\n }\n\n rawPath.totalPoints = points;\n rawPath.totalLength = pathLength;\n return rawPath;\n} //divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6)\n\nexport function subdivideSegment(segment, i, t) {\n if (t <= 0 || t >= 1) {\n return 0;\n }\n\n var ax = segment[i],\n ay = segment[i + 1],\n cp1x = segment[i + 2],\n cp1y = segment[i + 3],\n cp2x = segment[i + 4],\n cp2y = segment[i + 5],\n bx = segment[i + 6],\n by = segment[i + 7],\n x1a = ax + (cp1x - ax) * t,\n x2 = cp1x + (cp2x - cp1x) * t,\n y1a = ay + (cp1y - ay) * t,\n y2 = cp1y + (cp2y - cp1y) * t,\n x1 = x1a + (x2 - x1a) * t,\n y1 = y1a + (y2 - y1a) * t,\n x2a = cp2x + (bx - cp2x) * t,\n y2a = cp2y + (by - cp2y) * t;\n x2 += (x2a - x2) * t;\n y2 += (y2a - y2) * t;\n segment.splice(i + 2, 4, _round(x1a), //first control point\n _round(y1a), _round(x1), //second control point\n _round(y1), _round(x1 + (x2 - x1) * t), //new fabricated anchor on line\n _round(y1 + (y2 - y1) * t), _round(x2), //third control point\n _round(y2), _round(x2a), //fourth control point\n _round(y2a));\n segment.samples && segment.samples.splice(i / 6 * segment.resolution | 0, 0, 0, 0, 0, 0, 0, 0);\n return 6;\n} // returns an object {path, segment, segIndex, i, t}\n\nfunction getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) {\n decoratee = decoratee || {};\n rawPath.totalLength || cacheRawPathMeasurements(rawPath);\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n var segIndex = 0,\n segment = rawPath[0],\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t;\n\n if (!progress) {\n t = i = segIndex = 0;\n segment = rawPath[0];\n } else if (progress === 1) {\n t = 1;\n segIndex = rawPath.length - 1;\n segment = rawPath[segIndex];\n i = segment.length - 8;\n } else {\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segIndex = i;\n }\n\n segment = rawPath[segIndex];\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution; //how many samples per cubic bezier chunk\n\n length = segment.totalLength * progress;\n i = segment.lookup[~~(length / segment.minLength)] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution);\n i = ~~(i / resolution) * 6;\n\n if (pushToNextIfAtEnd && t === 1) {\n if (i + 6 < segment.length) {\n i += 6;\n t = 0;\n } else if (segIndex + 1 < rawPath.length) {\n i = t = 0;\n segment = rawPath[++segIndex];\n }\n }\n }\n\n decoratee.t = t;\n decoratee.i = i;\n decoratee.path = rawPath;\n decoratee.segment = segment;\n decoratee.segIndex = segIndex;\n return decoratee;\n}\n\nexport function getPositionOnPath(rawPath, progress, includeAngle, point) {\n var segment = rawPath[0],\n result = point || {},\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t,\n a,\n inv;\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segment = rawPath[i];\n }\n\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution;\n length = segment.totalLength * progress;\n i = segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution) || 0;\n inv = 1 - t;\n i = ~~(i / resolution) * 6;\n a = segment[i];\n result.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a);\n result.y = _round((t * t * (segment[i + 7] - (a = segment[i + 1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a);\n\n if (includeAngle) {\n result.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0;\n }\n\n return result;\n} //applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy).\n\nexport function transformRawPath(rawPath, a, b, c, d, tx, ty) {\n var j = rawPath.length,\n segment,\n l,\n i,\n x,\n y;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 0; i < l; i += 2) {\n x = segment[i];\n y = segment[i + 1];\n segment[i] = x * a + y * c + tx;\n segment[i + 1] = x * b + y * d + ty;\n }\n }\n\n rawPath._dirty = 1;\n return rawPath;\n} // translates SVG arc data into a segment (cubic beziers). Angle is in degrees.\n\nfunction arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {\n if (lastX === x && lastY === y) {\n return;\n }\n\n rx = _abs(rx);\n ry = _abs(ry);\n\n var angleRad = angle % 360 * _DEG2RAD,\n cosAngle = _cos(angleRad),\n sinAngle = _sin(angleRad),\n PI = Math.PI,\n TWOPI = PI * 2,\n dx2 = (lastX - x) / 2,\n dy2 = (lastY - y) / 2,\n x1 = cosAngle * dx2 + sinAngle * dy2,\n y1 = -sinAngle * dx2 + cosAngle * dy2,\n x1_sq = x1 * x1,\n y1_sq = y1 * y1,\n radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);\n\n if (radiiCheck > 1) {\n rx = _sqrt(radiiCheck) * rx;\n ry = _sqrt(radiiCheck) * ry;\n }\n\n var rx_sq = rx * rx,\n ry_sq = ry * ry,\n sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq);\n\n if (sq < 0) {\n sq = 0;\n }\n\n var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq),\n cx1 = coef * (rx * y1 / ry),\n cy1 = coef * -(ry * x1 / rx),\n sx2 = (lastX + x) / 2,\n sy2 = (lastY + y) / 2,\n cx = sx2 + (cosAngle * cx1 - sinAngle * cy1),\n cy = sy2 + (sinAngle * cx1 + cosAngle * cy1),\n ux = (x1 - cx1) / rx,\n uy = (y1 - cy1) / ry,\n vx = (-x1 - cx1) / rx,\n vy = (-y1 - cy1) / ry,\n temp = ux * ux + uy * uy,\n angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)),\n angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));\n\n isNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN.\n\n if (!sweepFlag && angleExtent > 0) {\n angleExtent -= TWOPI;\n } else if (sweepFlag && angleExtent < 0) {\n angleExtent += TWOPI;\n }\n\n angleStart %= TWOPI;\n angleExtent %= TWOPI;\n\n var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),\n rawPath = [],\n angleIncrement = angleExtent / segments,\n controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),\n ma = cosAngle * rx,\n mb = sinAngle * rx,\n mc = sinAngle * -ry,\n md = cosAngle * ry,\n i;\n\n for (i = 0; i < segments; i++) {\n angle = angleStart + i * angleIncrement;\n x1 = _cos(angle);\n y1 = _sin(angle);\n ux = _cos(angle += angleIncrement);\n uy = _sin(angle);\n rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);\n } //now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle).\n\n\n for (i = 0; i < rawPath.length; i += 2) {\n x1 = rawPath[i];\n y1 = rawPath[i + 1];\n rawPath[i] = x1 * ma + y1 * mc + cx;\n rawPath[i + 1] = x1 * mb + y1 * md + cy;\n }\n\n rawPath[i - 2] = x; //always set the end to exactly where it's supposed to be\n\n rawPath[i - 1] = y;\n return rawPath;\n} //Spits back a RawPath with absolute coordinates. Each segment starts with a \"moveTo\" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed.\n\n\nexport function stringToRawPath(d) {\n var a = (d + \"\").replace(_scientific, function (m) {\n var n = +m;\n return n < 0.0001 && n > -0.0001 ? 0 : n;\n }).match(_svgPathExp) || [],\n //some authoring programs spit out very small numbers in scientific notation like \"1e-5\", so make sure we round that down to 0 first.\n path = [],\n relativeX = 0,\n relativeY = 0,\n twoThirds = 2 / 3,\n elements = a.length,\n points = 0,\n errorMessage = \"ERROR: malformed path: \" + d,\n i,\n j,\n x,\n y,\n command,\n isRelative,\n segment,\n startX,\n startY,\n difX,\n difY,\n beziers,\n prevCommand,\n flag1,\n flag2,\n line = function line(sx, sy, ex, ey) {\n difX = (ex - sx) / 3;\n difY = (ey - sy) / 3;\n segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);\n };\n\n if (!d || !isNaN(a[0]) || isNaN(a[1])) {\n console.log(errorMessage);\n return path;\n }\n\n for (i = 0; i < elements; i++) {\n prevCommand = command;\n\n if (isNaN(a[i])) {\n command = a[i].toUpperCase();\n isRelative = command !== a[i]; //lower case means relative\n } else {\n //commands like \"C\" can be strung together without any new command characters between.\n i--;\n }\n\n x = +a[i + 1];\n y = +a[i + 2];\n\n if (isRelative) {\n x += relativeX;\n y += relativeY;\n }\n\n if (!i) {\n startX = x;\n startY = y;\n } // \"M\" (move)\n\n\n if (command === \"M\") {\n if (segment) {\n if (segment.length < 8) {\n //if the path data was funky and just had a M with no actual drawing anywhere, skip it.\n path.length -= 1;\n } else {\n points += segment.length;\n }\n }\n\n relativeX = startX = x;\n relativeY = startY = y;\n segment = [x, y];\n path.push(segment);\n i += 2;\n command = \"L\"; //an \"M\" with more than 2 values gets interpreted as \"lineTo\" commands (\"L\").\n // \"C\" (cubic bezier)\n } else if (command === \"C\") {\n if (!segment) {\n segment = [0, 0];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n } //note: \"*1\" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox.\n\n\n segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1);\n i += 6; // \"S\" (continuation of cubic bezier)\n } else if (command === \"S\") {\n difX = relativeX;\n difY = relativeY;\n\n if (prevCommand === \"C\" || prevCommand === \"S\") {\n difX += relativeX - segment[segment.length - 4];\n difY += relativeY - segment[segment.length - 3];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1);\n i += 4; // \"Q\" (quadratic bezier)\n } else if (command === \"Q\") {\n difX = relativeX + (x - relativeX) * twoThirds;\n difY = relativeY + (y - relativeY) * twoThirds;\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n relativeX += a[i + 3] * 1;\n relativeY += a[i + 4] * 1;\n segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);\n i += 4; // \"T\" (continuation of quadratic bezier)\n } else if (command === \"T\") {\n difX = relativeX - segment[segment.length - 4];\n difY = relativeY - segment[segment.length - 3];\n segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y);\n i += 2; // \"H\" (horizontal line)\n } else if (command === \"H\") {\n line(relativeX, relativeY, relativeX = x, relativeY);\n i += 1; // \"V\" (vertical line)\n } else if (command === \"V\") {\n //adjust values because the first (and only one) isn't x in this case, it's y.\n line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0));\n i += 1; // \"L\" (line) or \"Z\" (close)\n } else if (command === \"L\" || command === \"Z\") {\n if (command === \"Z\") {\n x = startX;\n y = startY;\n segment.closed = true;\n }\n\n if (command === \"L\" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {\n line(relativeX, relativeY, x, y);\n\n if (command === \"L\") {\n i += 2;\n }\n }\n\n relativeX = x;\n relativeY = y; // \"A\" (arc)\n } else if (command === \"A\") {\n flag1 = a[i + 4];\n flag2 = a[i + 5];\n difX = a[i + 6];\n difY = a[i + 7];\n j = 7;\n\n if (flag1.length > 1) {\n // for cases when the flags are merged, like \"a8 8 0 018 8\" (the 0 and 1 flags are WITH the x value of 8, but it could also be \"a8 8 0 01-8 8\" so it may include x or not)\n if (flag1.length < 3) {\n difY = difX;\n difX = flag2;\n j--;\n } else {\n difY = flag2;\n difX = flag1.substr(2);\n j -= 2;\n }\n\n flag2 = flag1.charAt(1);\n flag1 = flag1.charAt(0);\n }\n\n beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1);\n i += j;\n\n if (beziers) {\n for (j = 0; j < beziers.length; j++) {\n segment.push(beziers[j]);\n }\n }\n\n relativeX = segment[segment.length - 2];\n relativeY = segment[segment.length - 1];\n } else {\n console.log(errorMessage);\n }\n }\n\n i = segment.length;\n\n if (i < 6) {\n //in case there's odd SVG like a M0,0 command at the very end.\n path.pop();\n i = 0;\n } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) {\n segment.closed = true;\n }\n\n path.totalPoints = points + i;\n return path;\n} //populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays\n\nexport function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = _abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = _abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [x1, y1, x4, y4];\n index = 2;\n }\n\n points.splice(index || points.length - 2, 0, x1234, y1234);\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length));\n }\n\n return points;\n}\n/*\nfunction getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians\n\tvar dx1 = x1 - x0,\n\t\tdy1 = y1 - y0,\n\t\tdx2 = x2 - x1,\n\t\tdy2 = y2 - y1,\n\t\tdx3 = x2 - x0,\n\t\tdy3 = y2 - y0,\n\t\ta = dx1 * dx1 + dy1 * dy1,\n\t\tb = dx2 * dx2 + dy2 * dy2,\n\t\tc = dx3 * dx3 + dy3 * dy3;\n\treturn Math.acos( (a + b - c) / _sqrt(4 * a * b) );\n},\n*/\n//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points)\n\nexport function flatPointsToSegment(points, curviness) {\n if (curviness === void 0) {\n curviness = 1;\n }\n\n var x = points[0],\n y = 0,\n segment = [x, y],\n i = 2;\n\n for (; i < points.length; i += 2) {\n segment.push(x, y, points[i], y = (points[i] - x) * curviness / 2, x = points[i], -y);\n }\n\n return segment;\n} //points is an array of x/y points, like [x, y, x, y, x, y]\n\nexport function pointsToSegment(points, curviness, cornerThreshold) {\n //points = simplifyPoints(points, tolerance);\n _abs(points[0] - points[2]) < 1e-4 && _abs(points[1] - points[3]) < 1e-4 && (points = points.slice(2)); // if the first two points are super close, dump the first one.\n\n var l = points.length - 2,\n x = +points[0],\n y = +points[1],\n nextX = +points[2],\n nextY = +points[3],\n segment = [x, y, x, y],\n dx2 = nextX - x,\n dy2 = nextY - y,\n closed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l + 1] - y) < 0.001,\n prevX,\n prevY,\n angle,\n slope,\n i,\n dx1,\n dx3,\n dy1,\n dy3,\n d1,\n d2,\n a,\n b,\n c;\n\n if (isNaN(cornerThreshold)) {\n cornerThreshold = Math.PI / 10;\n }\n\n if (closed) {\n // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect)\n points.push(nextX, nextY);\n nextX = x;\n nextY = y;\n x = points[l - 2];\n y = points[l - 1];\n points.unshift(x, y);\n l += 4;\n }\n\n curviness = curviness || curviness === 0 ? +curviness : 1;\n\n for (i = 2; i < l; i += 2) {\n prevX = x;\n prevY = y;\n x = nextX;\n y = nextY;\n nextX = +points[i + 2];\n nextY = +points[i + 3];\n\n if (x === nextX && y === nextY) {\n continue;\n }\n\n dx1 = dx2;\n dy1 = dy2;\n dx2 = nextX - x;\n dy2 = nextY - y;\n dx3 = nextX - prevX;\n dy3 = nextY - prevY;\n a = dx1 * dx1 + dy1 * dy1;\n b = dx2 * dx2 + dy2 * dy2;\n c = dx3 * dx3 + dy3 * dy3;\n angle = Math.acos((a + b - c) / _sqrt(4 * a * b)); //angle between the 3 points\n\n d2 = angle / Math.PI * curviness; //temporary precalculation for speed (reusing d2 variable)\n\n d1 = _sqrt(a) * d2; //the tighter the angle, the shorter we make the handles in proportion.\n\n d2 *= _sqrt(b);\n\n if (x !== prevX || y !== prevY) {\n if (angle > cornerThreshold) {\n slope = _atan2(dy3, dx3);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1), _round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n } else {\n slope = _atan2(dy1, dx1);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1));\n slope = _atan2(dy2, dx2);\n segment.push(_round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n }\n }\n }\n\n x !== nextX || y !== nextY || segment.length < 4 ? segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY)) : segment.length -= 2;\n\n if (closed) {\n segment.splice(0, 6);\n segment.length = segment.length - 6;\n }\n\n return segment;\n} //returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2\n\nfunction pointToSegDist(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1,\n dy = y2 - y1,\n t;\n\n if (dx || dy) {\n t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n\n return Math.pow(x - x1, 2) + Math.pow(y - y1, 2);\n}\n\nfunction simplifyStep(points, first, last, tolerance, simplified) {\n var maxSqDist = tolerance,\n firstX = points[first],\n firstY = points[first + 1],\n lastX = points[last],\n lastY = points[last + 1],\n index,\n i,\n d;\n\n for (i = first + 2; i < last; i += 2) {\n d = pointToSegDist(points[i], points[i + 1], firstX, firstY, lastX, lastY);\n\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n }\n }\n\n if (maxSqDist > tolerance) {\n index - first > 2 && simplifyStep(points, first, index, tolerance, simplified);\n simplified.push(points[index], points[index + 1]);\n last - index > 2 && simplifyStep(points, index, last, tolerance, simplified);\n }\n} //points is an array of x/y values like [x, y, x, y, x, y]\n\n\nexport function simplifyPoints(points, tolerance) {\n var prevX = parseFloat(points[0]),\n prevY = parseFloat(points[1]),\n temp = [prevX, prevY],\n l = points.length - 2,\n i,\n x,\n y,\n dx,\n dy,\n result,\n last;\n tolerance = Math.pow(tolerance || 1, 2);\n\n for (i = 2; i < l; i += 2) {\n x = parseFloat(points[i]);\n y = parseFloat(points[i + 1]);\n dx = prevX - x;\n dy = prevY - y;\n\n if (dx * dx + dy * dy > tolerance) {\n temp.push(x, y);\n prevX = x;\n prevY = y;\n }\n }\n\n temp.push(parseFloat(points[l]), parseFloat(points[l + 1]));\n last = temp.length - 2;\n result = [temp[0], temp[1]];\n simplifyStep(temp, 0, last, tolerance, result);\n result.push(temp[last], temp[last + 1]);\n return result;\n}\n\nfunction getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) {\n var inc = (end - start) / slices,\n best = 0,\n t = start,\n x,\n y,\n d,\n dx,\n dy,\n inv;\n _bestDistance = _largeNum;\n\n while (t <= end) {\n inv = 1 - t;\n x = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3;\n y = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3;\n dx = x - px;\n dy = y - py;\n d = dx * dx + dy * dy;\n\n if (d < _bestDistance) {\n _bestDistance = d;\n best = t;\n }\n\n t += inc;\n }\n\n return iterations > 1 ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best;\n}\n\nexport function getClosestData(rawPath, x, y, slices) {\n //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier)\n var closest = {\n j: 0,\n i: 0,\n t: 0\n },\n bestDistance = _largeNum,\n i,\n j,\n t,\n segment;\n\n for (j = 0; j < rawPath.length; j++) {\n segment = rawPath[j];\n\n for (i = 0; i < segment.length; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n closest.j = j;\n closest.i = i;\n closest.t = t;\n }\n }\n }\n\n return closest;\n} //subdivide a Segment closest to a specific x,y coordinate\n\nexport function subdivideSegmentNear(x, y, segment, slices, iterations) {\n var l = segment.length,\n bestDistance = _largeNum,\n bestT = 0,\n bestSegmentIndex = 0,\n t,\n i;\n slices = slices || 20;\n iterations = iterations || 3;\n\n for (i = 0; i < l; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n bestT = t;\n bestSegmentIndex = i;\n }\n }\n\n t = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex + 1], segment[bestSegmentIndex + 2], segment[bestSegmentIndex + 3], segment[bestSegmentIndex + 4], segment[bestSegmentIndex + 5], segment[bestSegmentIndex + 6], segment[bestSegmentIndex + 7]);\n subdivideSegment(segment, bestSegmentIndex, t);\n return bestSegmentIndex + 6;\n}\n/*\nTakes any of the following and converts it to an all Cubic Bezier SVG data string:\n- A data string like \"M0,0 L2,4 v20,15 H100\"\n- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]]\n- A Segment, like [x, y, x, y, x, y, x, y]\n\nNote: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13\n*/\n\nexport function rawPathToString(rawPath) {\n if (_isNumber(rawPath[0])) {\n //in case a segment is passed in instead\n rawPath = [rawPath];\n }\n\n var result = \"\",\n l = rawPath.length,\n sl,\n s,\n i,\n segment;\n\n for (s = 0; s < l; s++) {\n segment = rawPath[s];\n result += \"M\" + _round(segment[0]) + \",\" + _round(segment[1]) + \" C\";\n sl = segment.length;\n\n for (i = 2; i < sl; i++) {\n result += _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i]) + \" \";\n }\n\n if (segment.closed) {\n result += \"z\";\n }\n }\n\n return result;\n}\n/*\n// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween.\nexport function cpCoordsToAngles(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tx, y, i;\n\tfor (i = 0; i < segment.length; i+=6) {\n\t\tx = segment[i+2] - segment[i];\n\t\ty = segment[i+3] - segment[i+1];\n\t\tresult[i+2] = Math.atan2(y, x);\n\t\tresult[i+3] = Math.sqrt(x * x + y * y);\n\t\tx = segment[i+6] - segment[i+4];\n\t\ty = segment[i+7] - segment[i+5];\n\t\tresult[i+4] = Math.atan2(y, x);\n\t\tresult[i+5] = Math.sqrt(x * x + y * y);\n\t}\n\treturn result;\n}\n\n// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates.\nexport function cpAnglesToCoords(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tlength = segment.length,\n\t\trnd = 1000,\n\t\tangle, l, i, j;\n\tfor (i = 0; i < length; i+=6) {\n\t\tangle = segment[i+2];\n\t\tl = segment[i+3]; //length\n\t\tresult[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t\tangle = segment[i+4];\n\t\tl = segment[i+5]; //length\n\t\tresult[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t}\n\treturn result;\n}\n\n//adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\nexport function populateSmoothData(rawPath) {\n\tlet j = rawPath.length,\n\t\tsmooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tisSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n\t\tsmoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n\t\tisSmooth.length = 4;\n\t\tl = segment.length - 2;\n\t\tfor (i = 6; i < l; i += 6) {\n\t\t\tx = segment[i] - segment[i - 2];\n\t\t\ty = segment[i + 1] - segment[i - 1];\n\t\t\tx2 = segment[i + 2] - segment[i];\n\t\t\ty2 = segment[i + 3] - segment[i + 1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tsmooth = (Math.abs(a - a2) < 0.09);\n\t\t\tif (smooth) {\n\t\t\t\tsmoothData[i - 2] = a;\n\t\t\t\tsmoothData[i + 2] = a2;\n\t\t\t\tsmoothData[i - 1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t}\n\t\t\tisSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n\t\t}\n\t\t//if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\t\tif (segment[l] === segment[0] && segment[l+1] === segment[1]) {\n\t\t\tx = segment[0] - segment[l-2];\n\t\t\ty = segment[1] - segment[l-1];\n\t\t\tx2 = segment[2] - segment[0];\n\t\t\ty2 = segment[3] - segment[1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tif (Math.abs(a - a2) < 0.09) {\n\t\t\t\tsmoothData[l-2] = a;\n\t\t\t\tsmoothData[2] = a2;\n\t\t\t\tsmoothData[l-1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t\tisSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n\t\t\t}\n\t\t}\n\t}\n\treturn rawPath;\n}\nexport function pointToScreen(svgElement, point) {\n\tif (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point\n\t\tlet rawPath = getRawPath(svgElement);\n\t\tpoint = svgElement.ownerSVGElement.createSVGPoint();\n\t\tpoint.x = rawPath[0][0];\n\t\tpoint.y = rawPath[0][1];\n\t}\n\treturn point.matrixTransform(svgElement.getScreenCTM());\n}\n\n*/","/*!\n * CustomEase 3.6.1\n * https://greensock.com\n *\n * @license Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { stringToRawPath, rawPathToString, transformRawPath } from \"./utils/paths.js\";\n\nvar gsap,\n _coreInitted,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (gsap) {\n gsap.registerEase(\"_CE\", CustomEase.create);\n _coreInitted = 1;\n } else {\n console.warn(\"Please gsap.registerPlugin(CustomEase)\");\n }\n},\n _bigNum = 1e20,\n _round = function _round(value) {\n return ~~(value * 1000 + (value < 0 ? -.5 : .5)) / 1000;\n},\n _bonusValidated = 1,\n //CustomEase\n_numExp = /[-+=\\.]*\\d+[\\.e\\-\\+]*\\d*[e\\-\\+]*\\d*/gi,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_needsParsingExp = /[cLlsSaAhHvVtTqQ]/g,\n _findMinimum = function _findMinimum(values) {\n var l = values.length,\n min = _bigNum,\n i;\n\n for (i = 1; i < l; i += 6) {\n +values[i] < min && (min = +values[i]);\n }\n\n return min;\n},\n //takes all the points and translates/scales them so that the x starts at 0 and ends at 1.\n_normalize = function _normalize(values, height, originY) {\n if (!originY && originY !== 0) {\n originY = Math.max(+values[values.length - 1], +values[1]);\n }\n\n var tx = +values[0] * -1,\n ty = -originY,\n l = values.length,\n sx = 1 / (+values[l - 2] + tx),\n sy = -height || (Math.abs(+values[l - 1] - +values[1]) < 0.01 * (+values[l - 2] - +values[0]) ? _findMinimum(values) + ty : +values[l - 1] + ty),\n i;\n\n if (sy) {\n //typically y ends at 1 (so that the end values are reached)\n sy = 1 / sy;\n } else {\n //in case the ease returns to its beginning value, scale everything proportionally\n sy = -sx;\n }\n\n for (i = 0; i < l; i += 2) {\n values[i] = (+values[i] + tx) * sx;\n values[i + 1] = (+values[i + 1] + ty) * sy;\n }\n},\n //note that this function returns point objects like {x, y} rather than working with segments which are arrays with alternating x, y values as in the similar function in paths.js\n_bezierToPoints = function _bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = Math.abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = Math.abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [{\n x: x1,\n y: y1\n }, {\n x: x4,\n y: y4\n }];\n index = 1;\n }\n\n points.splice(index || points.length - 1, 0, {\n x: x1234,\n y: y1234\n });\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n\n _bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n\n _bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 1 + (points.length - length));\n }\n\n return points;\n};\n\nexport var CustomEase = /*#__PURE__*/function () {\n function CustomEase(id, data, config) {\n _coreInitted || _initCore();\n this.id = id;\n _bonusValidated && this.setData(data, config);\n }\n\n var _proto = CustomEase.prototype;\n\n _proto.setData = function setData(data, config) {\n config = config || {};\n data = data || \"0,0,1,1\";\n var values = data.match(_numExp),\n closest = 1,\n points = [],\n lookup = [],\n precision = config.precision || 1,\n fast = precision <= 1,\n l,\n a1,\n a2,\n i,\n inc,\n j,\n point,\n prevPoint,\n p;\n this.data = data;\n\n if (_needsParsingExp.test(data) || ~data.indexOf(\"M\") && data.indexOf(\"C\") < 0) {\n values = stringToRawPath(data)[0];\n }\n\n l = values.length;\n\n if (l === 4) {\n values.unshift(0, 0);\n values.push(1, 1);\n l = 8;\n } else if ((l - 2) % 6) {\n throw \"Invalid CustomEase\";\n }\n\n if (+values[0] !== 0 || +values[l - 2] !== 1) {\n _normalize(values, config.height, config.originY);\n }\n\n this.segment = values;\n\n for (i = 2; i < l; i += 6) {\n a1 = {\n x: +values[i - 2],\n y: +values[i - 1]\n };\n a2 = {\n x: +values[i + 4],\n y: +values[i + 5]\n };\n points.push(a1, a2);\n\n _bezierToPoints(a1.x, a1.y, +values[i], +values[i + 1], +values[i + 2], +values[i + 3], a2.x, a2.y, 1 / (precision * 200000), points, points.length - 1);\n }\n\n l = points.length;\n\n for (i = 0; i < l; i++) {\n point = points[i];\n prevPoint = points[i - 1] || point;\n\n if ((point.x > prevPoint.x || prevPoint.y !== point.y && prevPoint.x === point.x || point === prevPoint) && point.x <= 1) {\n //if a point goes BACKWARD in time or is a duplicate, just drop it. Also it shouldn't go past 1 on the x axis, as could happen in a string like \"M0,0 C0,0 0.12,0.68 0.18,0.788 0.195,0.845 0.308,1 0.32,1 0.403,1.005 0.398,1 0.5,1 0.602,1 0.816,1.005 0.9,1 0.91,1 0.948,0.69 0.962,0.615 1.003,0.376 1,0 1,0\".\n prevPoint.cx = point.x - prevPoint.x; //change in x between this point and the next point (performance optimization)\n\n prevPoint.cy = point.y - prevPoint.y;\n prevPoint.n = point;\n prevPoint.nx = point.x; //next point's x value (performance optimization, making lookups faster in getRatio()). Remember, the lookup will always land on a spot where it's either this point or the very next one (never beyond that)\n\n if (fast && i > 1 && Math.abs(prevPoint.cy / prevPoint.cx - points[i - 2].cy / points[i - 2].cx) > 2) {\n //if there's a sudden change in direction, prioritize accuracy over speed. Like a bounce ease - you don't want to risk the sampling chunks landing on each side of the bounce anchor and having it clipped off.\n fast = 0;\n }\n\n if (prevPoint.cx < closest) {\n if (!prevPoint.cx) {\n prevPoint.cx = 0.001; //avoids math problems in getRatio() (dividing by zero)\n\n if (i === l - 1) {\n //in case the final segment goes vertical RIGHT at the end, make sure we end at the end.\n prevPoint.x -= 0.001;\n closest = Math.min(closest, 0.001);\n fast = 0;\n }\n } else {\n closest = prevPoint.cx;\n }\n }\n } else {\n points.splice(i--, 1);\n l--;\n }\n }\n\n l = 1 / closest + 1 | 0;\n inc = 1 / l;\n j = 0;\n point = points[0];\n\n if (fast) {\n for (i = 0; i < l; i++) {\n //for fastest lookups, we just sample along the path at equal x (time) distance. Uses more memory and is slightly less accurate for anchors that don't land on the sampling points, but for the vast majority of eases it's excellent (and fast).\n p = i * inc;\n\n if (point.nx < p) {\n point = points[++j];\n }\n\n a1 = point.y + (p - point.x) / point.cx * point.cy;\n lookup[i] = {\n x: p,\n cx: inc,\n y: a1,\n cy: 0,\n nx: 9\n };\n\n if (i) {\n lookup[i - 1].cy = a1 - lookup[i - 1].y;\n }\n }\n\n lookup[l - 1].cy = points[points.length - 1].y - a1;\n } else {\n //this option is more accurate, ensuring that EVERY anchor is hit perfectly. Clipping across a bounce, for example, would never happen.\n for (i = 0; i < l; i++) {\n //build a lookup table based on the smallest distance so that we can instantly find the appropriate point (well, it'll either be that point or the very next one). We'll look up based on the linear progress. So it's it's 0.5 and the lookup table has 100 elements, it'd be like lookup[Math.floor(0.5 * 100)]\n if (point.nx < i * inc) {\n point = points[++j];\n }\n\n lookup[i] = point;\n }\n\n if (j < points.length - 1) {\n lookup[i - 1] = points[points.length - 2];\n }\n } //this._calcEnd = (points[points.length-1].y !== 1 || points[0].y !== 0); //ensures that we don't run into floating point errors. As long as we're starting at 0 and ending at 1, tell GSAP to skip the final calculation and use 0/1 as the factor.\n\n\n this.ease = function (p) {\n var point = lookup[p * l | 0] || lookup[l - 1];\n\n if (point.nx < p) {\n point = point.n;\n }\n\n return point.y + (p - point.x) / point.cx * point.cy;\n };\n\n this.ease.custom = this;\n this.id && gsap.registerEase(this.id, this.ease);\n return this;\n };\n\n _proto.getSVGData = function getSVGData(config) {\n return CustomEase.getSVGData(this, config);\n };\n\n CustomEase.create = function create(id, data, config) {\n return new CustomEase(id, data, config).ease;\n };\n\n CustomEase.register = function register(core) {\n gsap = core;\n\n _initCore();\n };\n\n CustomEase.get = function get(id) {\n return gsap.parseEase(id);\n };\n\n CustomEase.getSVGData = function getSVGData(ease, config) {\n config = config || {};\n var width = config.width || 100,\n height = config.height || 100,\n x = config.x || 0,\n y = (config.y || 0) + height,\n e = gsap.utils.toArray(config.path)[0],\n a,\n slope,\n i,\n inc,\n tx,\n ty,\n precision,\n threshold,\n prevX,\n prevY;\n\n if (config.invert) {\n height = -height;\n y = 0;\n }\n\n if (typeof ease === \"string\") {\n ease = gsap.parseEase(ease);\n }\n\n if (ease.custom) {\n ease = ease.custom;\n }\n\n if (ease instanceof CustomEase) {\n a = rawPathToString(transformRawPath([ease.segment], width, 0, 0, -height, x, y));\n } else {\n a = [x, y];\n precision = Math.max(5, (config.precision || 1) * 200);\n inc = 1 / precision;\n precision += 2;\n threshold = 5 / precision;\n prevX = _round(x + inc * width);\n prevY = _round(y + ease(inc) * -height);\n slope = (prevY - y) / (prevX - x);\n\n for (i = 2; i < precision; i++) {\n tx = _round(x + i * inc * width);\n ty = _round(y + ease(i * inc) * -height);\n\n if (Math.abs((ty - prevY) / (tx - prevX) - slope) > threshold || i === precision - 1) {\n //only add points when the slope changes beyond the threshold\n a.push(prevX, prevY);\n slope = (ty - prevY) / (tx - prevX);\n }\n\n prevX = tx;\n prevY = ty;\n }\n\n a = \"M\" + a.join(\",\");\n }\n\n e && e.setAttribute(\"d\", a);\n return a;\n };\n\n return CustomEase;\n}();\n_getGSAP() && gsap.registerPlugin(CustomEase);\nCustomEase.version = \"3.6.1\";\nexport { CustomEase as default };","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n/*!\n * GSAP 3.6.1\n * https://greensock.com\n *\n * @license Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\n\n\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[#\\-+.]*\\b[a-z\\d-=+%.]+/gi,\n _unitExp = /[\\d.+\\-=]+(?:e[-+]\\d*)*/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _parseVars = function _parseVars(params, type, parent) {\n //reads the arguments passed to one of the key methods and figures out if the user is defining things with the OLD/legacy syntax where the duration is the 2nd parameter, and then it adjusts things accordingly and spits back the corrected vars object (with the duration added if necessary, as well as runBackwards or startAt or immediateRender). type 0 = to()/staggerTo(), 1 = from()/staggerFrom(), 2 = fromTo()/staggerFromTo()\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = parent;\n\n if (type) {\n irVars = vars;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return vars;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && _lazyRender();\n animation.render(time, suppressEvents, force);\n _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" || p === \"ease\" || (obj[p] = defaults[p]);\n }\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _round(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _round(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || child._initted && !child._dur) {\n //in case, for example, the _start is moved on a tween that has already rendered. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning.\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _round(position + child._delay);\n child._end = _round(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n timeline._recent = child;\n skipChecks || _postAddChecks(timeline, child);\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, totalTime, force, suppressEvents) {\n _initTween(tween, totalTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [totalTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) || (tween._ts < 0 || tween._dp._ts < 0) && tween.data !== \"isFromStart\" && tween.data !== \"isStart\") ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n prevIteration = _animationCycle(tween._tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== prevIteration) {\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n tween._startAt && totalTime < 0 && tween._startAt.render(totalTime, true, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (!child._dur && child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (!child._dur && child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _round(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _round(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress && !leavePlayhead ? _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress) : animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n i = position.charAt(0);\n\n if (i === \"<\" || i === \">\") {\n return (i === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0);\n }\n\n i = position.indexOf(\"=\");\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = +(position.charAt(i - 1) + position.substr(i + 1));\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1)) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value) {\n if (typeof value !== \"string\") {\n return \"\";\n }\n\n var v = _unitExp.exec(value);\n\n return v ? value.substr(v.index + v[0].length) : \"\";\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, leaveStrings) {\n return _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call(_doc.querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _round(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = v < 1 ? Math.pow(10, (v + \"\").length - 2) : 1; //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed()\n\n return function (raw) {\n var n = Math.round(parseFloat(raw) / v) * v * p;\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n params,\n scope;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n return params ? callback.apply(scope, params) : callback.call(scope);\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(false);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _createPlugin = function _createPlugin(config) {\n config = !config.name && config[\"default\"] || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n _hue = function _hue(h, m1, m2) {\n h = h < 0 ? h + 1 : h > 1 ? h - 1 : h;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _raf = _win.requestAnimationFrame;\n }\n\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || 1 / _tinyNum; //zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag, _lagThreshold, 0);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback) {\n _listeners.indexOf(callback) < 0 && _listeners.push(callback);\n\n _wake();\n },\n remove: function remove(callback) {\n var i;\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars, time) {\n var parent = vars.parent || _globalTimeline;\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n _tickerActive || _ticker.wake();\n parent && _addToTimeline(parent, this, time || time === 0 ? time : parent._time, 1);\n vars.reversed && this.reverse();\n vars.paused && this.paused(true);\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % this._dur || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n return _recacheAncestors(this.totalTime(_clamp(-this._delay, this._tDur, tTime), true));\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && (this._tTime -= _tinyNum) && Math.abs(this._zTime) !== _tinyNum); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detatched parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (animation._ts || 1);\n animation = animation._dp;\n }\n\n return time;\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n this._rDelay = value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, time) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars, time) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _this.parent && _postAddChecks(_this.parent, _assertThisInitialized(_this));\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n new Tween(targets, _parseVars(arguments, 0, this), _parsePosition(this, _isNumber(vars) ? arguments[3] : position));\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n new Tween(targets, _parseVars(arguments, 1, this), _parsePosition(this, _isNumber(vars) ? arguments[3] : position));\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n new Tween(targets, _parseVars(arguments, 2, this), _parsePosition(this, _isNumber(fromVars) ? arguments[4] : position));\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), _parsePosition(this, position));\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = this !== _globalTimeline && totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _round(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://greensock.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : dur;\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _round(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _round(prevTime), _round(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n !prevTime && time && !suppressEvents && _callback(this, \"onStart\");\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && tDur >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) {\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _round(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result;\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n var duration = vars.duration || Math.abs((endTime - tl._time) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate() {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate();\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? parseFloat(endNum.substr(2)) * (endNum.charAt(0) === \"-\" ? -1 : 1) : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n end = parseFloat(parsedStart) + parseFloat(end.substr(2)) * (end.charAt(0) === \"-\" ? -1 : 1) + (getUnit(parsedStart) || 0);\n }\n }\n\n if (parsedStart !== end) {\n if (!isNaN(parsedStart * end)) {\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_initTween = function _initTween(tween, time) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n onUpdateParams = vars.onUpdateParams,\n callbackScope = vars.callbackScope,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.parent._targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n if (!tl) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n prevStartAt && prevStartAt.render(-1, true).kill();\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate,\n onUpdateParams: onUpdateParams,\n callbackScope: callbackScope,\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n if (immediateRender) {\n if (time > 0) {\n autoRevert || (tween._startAt = 0); //tweens that render immediately (like most from() and fromTo() tweens) shouldn't revert when their parent timeline's playhead goes backward past the startTime because the initial render could have happened anytime and it shouldn't be directly correlated to this tween's startTime. Imagine setting up a complex animation where the beginning states of various objects are rendered immediately but the tween doesn't happen for quite some time - if we revert to the starting values as soon as the playhead goes backward past the tween's startTime, it will throw things off visually. Reversion should only happen in Timeline instances where immediateRender was false or when autoRevert is explicitly set to true.\n } else if (dur && !(time < 0 && prevStartAt)) {\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n } else if (autoRevert === false) {\n tween._startAt = 0;\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (prevStartAt) {\n !autoRevert && (tween._startAt = 0);\n } else {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y:gsap.utils.wrap([-100,100])})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(0)); //Also make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase\",\n _staggerPropsToSkip = (_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\").split(\",\");\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, time, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n time.duration = vars;\n vars = time;\n time = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars), time) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = _this3.parent,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://greensock.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {}\n });\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (keyframes) {\n _setDefaults(tl.vars.defaults, {\n ease: \"none\"\n });\n\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n } else {\n l = parsedTargets.length;\n staggerFunc = stagger ? distribute(stagger) : _emptyFunc;\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = {};\n\n for (p in vars) {\n if (_staggerPropsToSkip.indexOf(p) < 0) {\n copy[p] = vars[p];\n }\n }\n\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc(i, curTarget, parsedTargets));\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n parent && _postAddChecks(parent, _assertThisInitialized(_this3));\n\n if (immediateRender || !duration && !keyframes && _this3._start === _round(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay)); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n tTime = totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== totalTime < 0) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _round(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock) {\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_round(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, totalTime < 0 ? totalTime : time, force, suppressEvents)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n time && !prevTime && !suppressEvents && _callback(this, \"onStart\");\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * ratio, suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n totalTime < 0 && this._startAt && this._startAt.render(totalTime, true, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n totalTime < 0 && this._startAt && !this._onUpdate && this._startAt.render(totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate() {\n this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate();\n return _Animation2.prototype.invalidate.call(this);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return new Tween(targets, _parseVars(arguments, 1));\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n });\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return new Tween(targets, _parseVars(arguments, 2));\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref2) {\n var name = _ref2.name,\n effect = _ref2.effect,\n plugins = _ref2.plugins,\n defaults = _ref2.defaults,\n extendTimeline = _ref2.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt;\n\n for (p in vars) {\n pt = this.add(target, \"setAttribute\", (target.getAttribute(p) || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt && (pt.op = p);\n\n this._props.push(p);\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i]);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.6.1\";\n_coreReady = 1;\n\nif (_windowExists()) {\n _wake();\n}\n\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp };","/*!\n * CSSPlugin 3.6.1\n * https://greensock.com\n *\n * Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(?:left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n if (property.substr(0, 2) === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time) {\n return _round(curValue / cache.width * amount);\n } else {\n (toPercent || curUnit === \"%\") && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n //note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://greensock.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n relative,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n target.style[prop] = start;\n }\n\n a = [start, end];\n\n _colorStringFilter(a); //pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n relative = endValue.charAt(1) === \"=\" ? +(endValue.charAt(0) + \"1\") : 0;\n\n if (relative) {\n endValue = endValue.substr(2);\n }\n\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: relative ? relative * endNum : endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin);\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y;\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n t1 = !cache.uncache && !uncache && target.getAttribute(\"data-svg-origin\");\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n cache.x = x - ((cache.xPercent = x && (cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue, relative) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = relative ? endNum * relative : endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority;\n _pluginInitted || _initCore();\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n p in _config.units && !getUnit(startValue) && (startValue += _config.units[p]); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" ? +(endValue.charAt(0) + \"1\") : 0;\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, relative ? relative * endNum : endNum - cache.scaleY);\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, endValue, relative);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, relative ? relative * endNum : endNum - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit) {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, target[p], endValue, index, targets);\n } else {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, endValue);\n }\n\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","/*! js-cookie v3.0.5 | MIT */\n\n/* eslint-disable no-var */\nfunction assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n target[key] = source[key];\n }\n }\n\n return target;\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\n\nvar defaultConverter = {\n read: function read(value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\n },\n write: function write(value) {\n return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init(converter, defaultAttributes) {\n function set(name, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = name + '=' + converter.write(value, name) + stringifiedAttributes;\n }\n\n function get(name) {\n if (typeof document === 'undefined' || arguments.length && !name) {\n return;\n } // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break;\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar;\n }\n\n return Object.create({\n set: set,\n get: get,\n remove: function remove(name, attributes) {\n set(name, '', assign({}, attributes, {\n expires: -1\n }));\n },\n withAttributes: function withAttributes(attributes) {\n return init(this.converter, assign({}, this.attributes, attributes));\n },\n withConverter: function withConverter(converter) {\n return init(assign({}, this.converter, converter), this.attributes);\n }\n }, {\n attributes: {\n value: Object.freeze(defaultAttributes)\n },\n converter: {\n value: Object.freeze(converter)\n }\n });\n}\n\nvar api = init(defaultConverter, {\n path: '/'\n});\n/* eslint-enable no-var */\n\nexport { api as default };","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype // eslint-disable-line no-proto\n? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n} : null);\n\nvar inspectCustom = require('./util.inspect').custom;\n\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double') {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n\n if (has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (has(opts, 'indent') && opts.indent !== null && opts.indent !== '\\t' && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n\n if (obj === null) {\n return 'null';\n }\n\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n\n return String(obj);\n }\n\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n\n if (typeof depth === 'undefined') {\n depth = 0;\n }\n\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n\n return inspect_(value, newOpts, depth + 1, seen);\n }\n\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n\n s += '>';\n\n if (obj.childNodes && obj.childNodes.length) {\n s += '...';\n }\n\n s += '';\n return s;\n }\n\n if (isArray(obj)) {\n if (obj.length === 0) {\n return '[]';\n }\n\n var xs = arrObjKeys(obj, inspect);\n\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n\n return '[ ' + xs.join(', ') + ' ]';\n }\n\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n\n if (parts.length === 0) {\n return '[' + String(obj) + ']';\n }\n\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n\n if (ys.length === 0) {\n return tag + '{}';\n }\n\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) {\n return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isDate(obj) {\n return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isRegExp(obj) {\n return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isError(obj) {\n return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isString(obj) {\n return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isNumber(obj) {\n return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n}\n\nfunction isBoolean(obj) {\n return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj));\n} // Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\n\n\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n\n if (typeof obj === 'symbol') {\n return true;\n }\n\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) {\n return key in this;\n};\n\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) {\n return f.name;\n }\n\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n\n if (m) {\n return m[1];\n }\n\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) {\n return xs.indexOf(x);\n }\n\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n\n try {\n mapSize.call(x);\n\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n\n try {\n weakMapHas.call(x, weakMapHas);\n\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n\n try {\n setSize.call(x);\n\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n\n try {\n weakSetHas.call(x, weakSetHas);\n\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') {\n return false;\n }\n\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n } // eslint-disable-next-line no-control-regex\n\n\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n\n if (x) {\n return '\\\\' + x;\n }\n\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) {\n return '';\n }\n\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n\n if (isArr) {\n xs.length = obj.length;\n\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n\n if (hasShammedSymbols) {\n symMap = {};\n\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) {\n // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) {\n continue;\n } // eslint-disable-line no-restricted-syntax, no-continue\n\n\n if (isArr && String(Number(key)) === key && key < obj.length) {\n continue;\n } // eslint-disable-line no-restricted-syntax, no-continue\n\n\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if (/[^\\w$]/.test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n\n return xs;\n}","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};","'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};","'use strict';\n\nvar getSideChannel = require('side-channel');\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || typeof v === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{\n value: obj.length > 0 ? obj.join(',') || null : undefined\n }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n || format === formats.RFC1738 && (c === 0x28 || c === 0x29) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};","import Cookies from 'universal-cookie';\nexport default Cookies;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/codebuild/output/src1994371749/src/love-peace/node_modules/@babel/runtime/regenerator\");\n\nvar _asyncToGenerator = require(\"/codebuild/output/src1994371749/src/love-peace/node_modules/@babel/runtime/helpers/asyncToGenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.recoilPersist = void 0;\n\nvar recoil_1 = require(\"recoil\");\n/**\n * Recoil module to persist state to storage\n *\n * @param config Optional configuration object\n * @param config.key Used as key in local storage, defaults to `recoil-persist`\n * @param config.storage Local storage to use, defaults to `localStorage`\n */\n\n\nvar recoilPersist = function recoilPersist() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (typeof window === 'undefined') {\n return {\n persistAtom: function persistAtom() {}\n };\n }\n\n var _config$key = config.key,\n key = _config$key === void 0 ? 'recoil-persist' : _config$key,\n _config$storage = config.storage,\n storage = _config$storage === void 0 ? localStorage : _config$storage;\n\n var persistAtom = function persistAtom(_ref) {\n var onSet = _ref.onSet,\n node = _ref.node,\n trigger = _ref.trigger,\n setSelf = _ref.setSelf;\n\n if (trigger === 'get') {\n var state = getState();\n\n if (typeof state.then === 'function') {\n state.then(function (s) {\n if (s.hasOwnProperty(node.key)) {\n setSelf(s[node.key]);\n }\n });\n }\n\n if (state.hasOwnProperty(node.key)) {\n setSelf(state[node.key]);\n }\n }\n\n onSet( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(newValue) {\n var state;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n state = getState();\n\n if (typeof state.then === 'function') {\n state.then(function (s) {\n return updateState(newValue, s, node.key);\n });\n } else {\n updateState(newValue, state, node.key);\n }\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }());\n };\n\n var updateState = function updateState(newValue, state, key) {\n if (newValue !== null && newValue !== undefined && newValue instanceof recoil_1.DefaultValue && state.hasOwnProperty(key)) {\n delete state[key];\n } else {\n state[key] = newValue;\n }\n\n setState(state);\n };\n\n var getState = function getState() {\n var toParse = storage.getItem(key);\n\n if (toParse === null || toParse === undefined) {\n return {};\n }\n\n if (typeof toParse === 'string') {\n return parseState(toParse);\n }\n\n if (typeof toParse.then === 'function') {\n return toParse.then(parseState);\n }\n\n return {};\n };\n\n var parseState = function parseState(state) {\n if (state === undefined) {\n return {};\n }\n\n try {\n return JSON.parse(state);\n } catch (e) {\n console.error(e);\n return {};\n }\n };\n\n var setState = function setState(state) {\n try {\n if (typeof storage.mergeItem === 'function') {\n storage.mergeItem(key, JSON.stringify(state));\n } else {\n storage.setItem(key, JSON.stringify(state));\n }\n } catch (e) {\n console.error(e);\n }\n };\n\n return {\n persistAtom: persistAtom\n };\n};\n\nexports.recoilPersist = recoilPersist;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBound = require('call-bind/callBound');\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\n\nvar listGetNode = function listGetNode(list, key) {\n // eslint-disable-line consistent-return\n for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n if (curr.key === key) {\n prev.next = curr.next;\n curr.next = list.next;\n list.next = curr; // eslint-disable-line no-param-reassign\n\n return curr;\n }\n }\n};\n\nvar listGet = function listGet(objects, key) {\n var node = listGetNode(objects, key);\n return node && node.value;\n};\n\nvar listSet = function listSet(objects, key, value) {\n var node = listGetNode(objects, key);\n\n if (node) {\n node.value = value;\n } else {\n // Prepend the new node to the beginning of the list\n objects.next = {\n // eslint-disable-line no-param-reassign\n key: key,\n next: objects.next,\n value: value\n };\n }\n};\n\nvar listHas = function listHas(objects, key) {\n return !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n var $wm;\n var $m;\n var $o;\n var channel = {\n assert: function assert(key) {\n if (!channel.has(key)) {\n throw new $TypeError('Side channel does not contain ' + inspect(key));\n }\n },\n get: function get(key) {\n // eslint-disable-line consistent-return\n if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n if ($wm) {\n return $weakMapGet($wm, key);\n }\n } else if ($Map) {\n if ($m) {\n return $mapGet($m, key);\n }\n } else {\n if ($o) {\n // eslint-disable-line no-lonely-if\n return listGet($o, key);\n }\n }\n },\n has: function has(key) {\n if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n if ($wm) {\n return $weakMapHas($wm, key);\n }\n } else if ($Map) {\n if ($m) {\n return $mapHas($m, key);\n }\n } else {\n if ($o) {\n // eslint-disable-line no-lonely-if\n return listHas($o, key);\n }\n }\n\n return false;\n },\n set: function set(key, value) {\n if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n if (!$wm) {\n $wm = new $WeakMap();\n }\n\n $weakMapSet($wm, key, value);\n } else if ($Map) {\n if (!$m) {\n $m = new $Map();\n }\n\n $mapSet($m, key, value);\n } else {\n if (!$o) {\n /*\n * Initialize the linked list as an empty node, so that we don't have\n * to special-case handling of the first node: we can always refer to\n * it as (previous node).next, instead of something like (list).head\n */\n $o = {\n key: {},\n next: null\n };\n }\n\n listSet($o, key, value);\n }\n }\n };\n return channel;\n};","import * as cookie from 'cookie';\nexport function hasDocumentCookie() {\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nexport function cleanCookies() {\n document.cookie.split(';').forEach(function (c) {\n document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\n });\n}\nexport function parseCookies(cookies, options) {\n if (typeof cookies === 'string') {\n return cookie.parse(cookies, options);\n } else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n } else {\n return {};\n }\n}\nexport function isParsingCookie(value, doNotParse) {\n if (typeof doNotParse === 'undefined') {\n // We guess if the cookie start with { or [, it has been serialized\n doNotParse = !value || value[0] !== '{' && value[0] !== '[' && value[0] !== '\"';\n }\n\n return !doNotParse;\n}\nexport function readCookie(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var cleanValue = cleanupCookieValue(value);\n\n if (isParsingCookie(cleanValue, options.doNotParse)) {\n try {\n return JSON.parse(cleanValue);\n } catch (e) {// At least we tried\n }\n } // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n\n\n return value;\n}\n\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n\n return value;\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport * as cookie from 'cookie';\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\n\nvar Cookies = function () {\n function Cookies(cookies, options) {\n var _this = this;\n\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.cookies = parseCookies(cookies, options);\n new Promise(function () {\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }).catch(function () {});\n }\n\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n\n this.cookies = cookie.parse(document.cookie, parseOptions);\n };\n\n Cookies.prototype._emitChange = function (params) {\n for (var i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n };\n\n Cookies.prototype.get = function (name, options, parseOptions) {\n if (options === void 0) {\n options = {};\n }\n\n this._updateBrowserValues(parseOptions);\n\n return readCookie(this.cookies[name], options);\n };\n\n Cookies.prototype.getAll = function (options, parseOptions) {\n if (options === void 0) {\n options = {};\n }\n\n this._updateBrowserValues(parseOptions);\n\n var result = {};\n\n for (var name_1 in this.cookies) {\n result[name_1] = readCookie(this.cookies[name_1], options);\n }\n\n return result;\n };\n\n Cookies.prototype.set = function (name, value, options) {\n var _a;\n\n if (typeof value === 'object') {\n value = JSON.stringify(value);\n }\n\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, value, options);\n }\n\n this._emitChange({\n name: name,\n value: value,\n options: options\n });\n };\n\n Cookies.prototype.remove = function (name, options) {\n var finalOptions = options = __assign(__assign({}, options), {\n expires: new Date(1970, 1, 1, 0, 0, 1),\n maxAge: 0\n });\n\n this.cookies = __assign({}, this.cookies);\n delete this.cookies[name];\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, '', finalOptions);\n }\n\n this._emitChange({\n name: name,\n value: undefined,\n options: options\n });\n };\n\n Cookies.prototype.addChangeListener = function (callback) {\n this.changeListeners.push(callback);\n };\n\n Cookies.prototype.removeChangeListener = function (callback) {\n var idx = this.changeListeners.indexOf(callback);\n\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n };\n\n return Cookies;\n}();\n\nexport default Cookies;","import Cookies from './Cookies';\nexport default Cookies;","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */\n(function () {\n function aa(a, b, c) {\n return a.call.apply(a.bind, arguments);\n }\n\n function ba(a, b, c) {\n if (!a) throw Error();\n\n if (2 < arguments.length) {\n var d = Array.prototype.slice.call(arguments, 2);\n return function () {\n var c = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(c, d);\n return a.apply(b, c);\n };\n }\n\n return function () {\n return a.apply(b, arguments);\n };\n }\n\n function p(a, b, c) {\n p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? aa : ba;\n return p.apply(null, arguments);\n }\n\n var q = Date.now || function () {\n return +new Date();\n };\n\n function ca(a, b) {\n this.a = a;\n this.o = b || a;\n this.c = this.o.document;\n }\n\n var da = !!window.FontFace;\n\n function t(a, b, c, d) {\n b = a.c.createElement(b);\n if (c) for (var e in c) {\n c.hasOwnProperty(e) && (\"style\" == e ? b.style.cssText = c[e] : b.setAttribute(e, c[e]));\n }\n d && b.appendChild(a.c.createTextNode(d));\n return b;\n }\n\n function u(a, b, c) {\n a = a.c.getElementsByTagName(b)[0];\n a || (a = document.documentElement);\n a.insertBefore(c, a.lastChild);\n }\n\n function v(a) {\n a.parentNode && a.parentNode.removeChild(a);\n }\n\n function w(a, b, c) {\n b = b || [];\n c = c || [];\n\n for (var d = a.className.split(/\\s+/), e = 0; e < b.length; e += 1) {\n for (var f = !1, g = 0; g < d.length; g += 1) {\n if (b[e] === d[g]) {\n f = !0;\n break;\n }\n }\n\n f || d.push(b[e]);\n }\n\n b = [];\n\n for (e = 0; e < d.length; e += 1) {\n f = !1;\n\n for (g = 0; g < c.length; g += 1) {\n if (d[e] === c[g]) {\n f = !0;\n break;\n }\n }\n\n f || b.push(d[e]);\n }\n\n a.className = b.join(\" \").replace(/\\s+/g, \" \").replace(/^\\s+|\\s+$/, \"\");\n }\n\n function y(a, b) {\n for (var c = a.className.split(/\\s+/), d = 0, e = c.length; d < e; d++) {\n if (c[d] == b) return !0;\n }\n\n return !1;\n }\n\n function ea(a) {\n return a.o.location.hostname || a.a.location.hostname;\n }\n\n function z(a, b, c) {\n function d() {\n m && e && f && (m(g), m = null);\n }\n\n b = t(a, \"link\", {\n rel: \"stylesheet\",\n href: b,\n media: \"all\"\n });\n var e = !1,\n f = !0,\n g = null,\n m = c || null;\n da ? (b.onload = function () {\n e = !0;\n d();\n }, b.onerror = function () {\n e = !0;\n g = Error(\"Stylesheet failed to load\");\n d();\n }) : setTimeout(function () {\n e = !0;\n d();\n }, 0);\n u(a, \"head\", b);\n }\n\n function A(a, b, c, d) {\n var e = a.c.getElementsByTagName(\"head\")[0];\n\n if (e) {\n var f = t(a, \"script\", {\n src: b\n }),\n g = !1;\n\n f.onload = f.onreadystatechange = function () {\n g || this.readyState && \"loaded\" != this.readyState && \"complete\" != this.readyState || (g = !0, c && c(null), f.onload = f.onreadystatechange = null, \"HEAD\" == f.parentNode.tagName && e.removeChild(f));\n };\n\n e.appendChild(f);\n setTimeout(function () {\n g || (g = !0, c && c(Error(\"Script load timeout\")));\n }, d || 5E3);\n return f;\n }\n\n return null;\n }\n\n ;\n\n function B() {\n this.a = 0;\n this.c = null;\n }\n\n function C(a) {\n a.a++;\n return function () {\n a.a--;\n D(a);\n };\n }\n\n function E(a, b) {\n a.c = b;\n D(a);\n }\n\n function D(a) {\n 0 == a.a && a.c && (a.c(), a.c = null);\n }\n\n ;\n\n function F(a) {\n this.a = a || \"-\";\n }\n\n F.prototype.c = function (a) {\n for (var b = [], c = 0; c < arguments.length; c++) {\n b.push(arguments[c].replace(/[\\W_]+/g, \"\").toLowerCase());\n }\n\n return b.join(this.a);\n };\n\n function G(a, b) {\n this.c = a;\n this.f = 4;\n this.a = \"n\";\n var c = (b || \"n4\").match(/^([nio])([1-9])$/i);\n c && (this.a = c[1], this.f = parseInt(c[2], 10));\n }\n\n function fa(a) {\n return H(a) + \" \" + (a.f + \"00\") + \" 300px \" + I(a.c);\n }\n\n function I(a) {\n var b = [];\n a = a.split(/,\\s*/);\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c].replace(/['\"]/g, \"\");\n -1 != d.indexOf(\" \") || /^\\d/.test(d) ? b.push(\"'\" + d + \"'\") : b.push(d);\n }\n\n return b.join(\",\");\n }\n\n function J(a) {\n return a.a + a.f;\n }\n\n function H(a) {\n var b = \"normal\";\n \"o\" === a.a ? b = \"oblique\" : \"i\" === a.a && (b = \"italic\");\n return b;\n }\n\n function ga(a) {\n var b = 4,\n c = \"n\",\n d = null;\n a && ((d = a.match(/(normal|oblique|italic)/i)) && d[1] && (c = d[1].substr(0, 1).toLowerCase()), (d = a.match(/([1-9]00|normal|bold)/i)) && d[1] && (/bold/i.test(d[1]) ? b = 7 : /[1-9]00/.test(d[1]) && (b = parseInt(d[1].substr(0, 1), 10))));\n return c + b;\n }\n\n ;\n\n function ha(a, b) {\n this.c = a;\n this.f = a.o.document.documentElement;\n this.h = b;\n this.a = new F(\"-\");\n this.j = !1 !== b.events;\n this.g = !1 !== b.classes;\n }\n\n function ia(a) {\n a.g && w(a.f, [a.a.c(\"wf\", \"loading\")]);\n K(a, \"loading\");\n }\n\n function L(a) {\n if (a.g) {\n var b = y(a.f, a.a.c(\"wf\", \"active\")),\n c = [],\n d = [a.a.c(\"wf\", \"loading\")];\n b || c.push(a.a.c(\"wf\", \"inactive\"));\n w(a.f, c, d);\n }\n\n K(a, \"inactive\");\n }\n\n function K(a, b, c) {\n if (a.j && a.h[b]) if (c) a.h[b](c.c, J(c));else a.h[b]();\n }\n\n ;\n\n function ja() {\n this.c = {};\n }\n\n function ka(a, b, c) {\n var d = [],\n e;\n\n for (e in b) {\n if (b.hasOwnProperty(e)) {\n var f = a.c[e];\n f && d.push(f(b[e], c));\n }\n }\n\n return d;\n }\n\n ;\n\n function M(a, b) {\n this.c = a;\n this.f = b;\n this.a = t(this.c, \"span\", {\n \"aria-hidden\": \"true\"\n }, this.f);\n }\n\n function N(a) {\n u(a.c, \"body\", a.a);\n }\n\n function O(a) {\n return \"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\" + I(a.c) + \";\" + (\"font-style:\" + H(a) + \";font-weight:\" + (a.f + \"00\") + \";\");\n }\n\n ;\n\n function P(a, b, c, d, e, f) {\n this.g = a;\n this.j = b;\n this.a = d;\n this.c = c;\n this.f = e || 3E3;\n this.h = f || void 0;\n }\n\n P.prototype.start = function () {\n var a = this.c.o.document,\n b = this,\n c = q(),\n d = new Promise(function (d, e) {\n function f() {\n q() - c >= b.f ? e() : a.fonts.load(fa(b.a), b.h).then(function (a) {\n 1 <= a.length ? d() : setTimeout(f, 25);\n }, function () {\n e();\n });\n }\n\n f();\n }),\n e = null,\n f = new Promise(function (a, d) {\n e = setTimeout(d, b.f);\n });\n Promise.race([f, d]).then(function () {\n e && (clearTimeout(e), e = null);\n b.g(b.a);\n }, function () {\n b.j(b.a);\n });\n };\n\n function Q(a, b, c, d, e, f, g) {\n this.v = a;\n this.B = b;\n this.c = c;\n this.a = d;\n this.s = g || \"BESbswy\";\n this.f = {};\n this.w = e || 3E3;\n this.u = f || null;\n this.m = this.j = this.h = this.g = null;\n this.g = new M(this.c, this.s);\n this.h = new M(this.c, this.s);\n this.j = new M(this.c, this.s);\n this.m = new M(this.c, this.s);\n a = new G(this.a.c + \",serif\", J(this.a));\n a = O(a);\n this.g.a.style.cssText = a;\n a = new G(this.a.c + \",sans-serif\", J(this.a));\n a = O(a);\n this.h.a.style.cssText = a;\n a = new G(\"serif\", J(this.a));\n a = O(a);\n this.j.a.style.cssText = a;\n a = new G(\"sans-serif\", J(this.a));\n a = O(a);\n this.m.a.style.cssText = a;\n N(this.g);\n N(this.h);\n N(this.j);\n N(this.m);\n }\n\n var R = {\n D: \"serif\",\n C: \"sans-serif\"\n },\n S = null;\n\n function T() {\n if (null === S) {\n var a = /AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);\n S = !!a && (536 > parseInt(a[1], 10) || 536 === parseInt(a[1], 10) && 11 >= parseInt(a[2], 10));\n }\n\n return S;\n }\n\n Q.prototype.start = function () {\n this.f.serif = this.j.a.offsetWidth;\n this.f[\"sans-serif\"] = this.m.a.offsetWidth;\n this.A = q();\n U(this);\n };\n\n function la(a, b, c) {\n for (var d in R) {\n if (R.hasOwnProperty(d) && b === a.f[R[d]] && c === a.f[R[d]]) return !0;\n }\n\n return !1;\n }\n\n function U(a) {\n var b = a.g.a.offsetWidth,\n c = a.h.a.offsetWidth,\n d;\n (d = b === a.f.serif && c === a.f[\"sans-serif\"]) || (d = T() && la(a, b, c));\n d ? q() - a.A >= a.w ? T() && la(a, b, c) && (null === a.u || a.u.hasOwnProperty(a.a.c)) ? V(a, a.v) : V(a, a.B) : ma(a) : V(a, a.v);\n }\n\n function ma(a) {\n setTimeout(p(function () {\n U(this);\n }, a), 50);\n }\n\n function V(a, b) {\n setTimeout(p(function () {\n v(this.g.a);\n v(this.h.a);\n v(this.j.a);\n v(this.m.a);\n b(this.a);\n }, a), 0);\n }\n\n ;\n\n function W(a, b, c) {\n this.c = a;\n this.a = b;\n this.f = 0;\n this.m = this.j = !1;\n this.s = c;\n }\n\n var X = null;\n\n W.prototype.g = function (a) {\n var b = this.a;\n b.g && w(b.f, [b.a.c(\"wf\", a.c, J(a).toString(), \"active\")], [b.a.c(\"wf\", a.c, J(a).toString(), \"loading\"), b.a.c(\"wf\", a.c, J(a).toString(), \"inactive\")]);\n K(b, \"fontactive\", a);\n this.m = !0;\n na(this);\n };\n\n W.prototype.h = function (a) {\n var b = this.a;\n\n if (b.g) {\n var c = y(b.f, b.a.c(\"wf\", a.c, J(a).toString(), \"active\")),\n d = [],\n e = [b.a.c(\"wf\", a.c, J(a).toString(), \"loading\")];\n c || d.push(b.a.c(\"wf\", a.c, J(a).toString(), \"inactive\"));\n w(b.f, d, e);\n }\n\n K(b, \"fontinactive\", a);\n na(this);\n };\n\n function na(a) {\n 0 == --a.f && a.j && (a.m ? (a = a.a, a.g && w(a.f, [a.a.c(\"wf\", \"active\")], [a.a.c(\"wf\", \"loading\"), a.a.c(\"wf\", \"inactive\")]), K(a, \"active\")) : L(a.a));\n }\n\n ;\n\n function oa(a) {\n this.j = a;\n this.a = new ja();\n this.h = 0;\n this.f = this.g = !0;\n }\n\n oa.prototype.load = function (a) {\n this.c = new ca(this.j, a.context || this.j);\n this.g = !1 !== a.events;\n this.f = !1 !== a.classes;\n pa(this, new ha(this.c, a), a);\n };\n\n function qa(a, b, c, d, e) {\n var f = 0 == --a.h;\n (a.f || a.g) && setTimeout(function () {\n var a = e || null,\n m = d || null || {};\n if (0 === c.length && f) L(b.a);else {\n b.f += c.length;\n f && (b.j = f);\n var h,\n l = [];\n\n for (h = 0; h < c.length; h++) {\n var k = c[h],\n n = m[k.c],\n r = b.a,\n x = k;\n r.g && w(r.f, [r.a.c(\"wf\", x.c, J(x).toString(), \"loading\")]);\n K(r, \"fontloading\", x);\n r = null;\n if (null === X) if (window.FontFace) {\n var x = /Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),\n xa = /OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor);\n X = x ? 42 < parseInt(x[1], 10) : xa ? !1 : !0;\n } else X = !1;\n X ? r = new P(p(b.g, b), p(b.h, b), b.c, k, b.s, n) : r = new Q(p(b.g, b), p(b.h, b), b.c, k, b.s, a, n);\n l.push(r);\n }\n\n for (h = 0; h < l.length; h++) {\n l[h].start();\n }\n }\n }, 0);\n }\n\n function pa(a, b, c) {\n var d = [],\n e = c.timeout;\n ia(b);\n var d = ka(a.a, c, a.c),\n f = new W(a.c, b, e);\n a.h = d.length;\n b = 0;\n\n for (c = d.length; b < c; b++) {\n d[b].load(function (b, d, c) {\n qa(a, f, b, d, c);\n });\n }\n }\n\n ;\n\n function ra(a, b) {\n this.c = a;\n this.a = b;\n }\n\n ra.prototype.load = function (a) {\n function b() {\n if (f[\"__mti_fntLst\" + d]) {\n var c = f[\"__mti_fntLst\" + d](),\n e = [],\n h;\n if (c) for (var l = 0; l < c.length; l++) {\n var k = c[l].fontfamily;\n void 0 != c[l].fontStyle && void 0 != c[l].fontWeight ? (h = c[l].fontStyle + c[l].fontWeight, e.push(new G(k, h))) : e.push(new G(k));\n }\n a(e);\n } else setTimeout(function () {\n b();\n }, 50);\n }\n\n var c = this,\n d = c.a.projectId,\n e = c.a.version;\n\n if (d) {\n var f = c.c.o;\n A(this.c, (c.a.api || \"https://fast.fonts.net/jsapi\") + \"/\" + d + \".js\" + (e ? \"?v=\" + e : \"\"), function (e) {\n e ? a([]) : (f[\"__MonotypeConfiguration__\" + d] = function () {\n return c.a;\n }, b());\n }).id = \"__MonotypeAPIScript__\" + d;\n } else a([]);\n };\n\n function sa(a, b) {\n this.c = a;\n this.a = b;\n }\n\n sa.prototype.load = function (a) {\n var b,\n c,\n d = this.a.urls || [],\n e = this.a.families || [],\n f = this.a.testStrings || {},\n g = new B();\n b = 0;\n\n for (c = d.length; b < c; b++) {\n z(this.c, d[b], C(g));\n }\n\n var m = [];\n b = 0;\n\n for (c = e.length; b < c; b++) {\n if (d = e[b].split(\":\"), d[1]) for (var h = d[1].split(\",\"), l = 0; l < h.length; l += 1) {\n m.push(new G(d[0], h[l]));\n } else m.push(new G(d[0]));\n }\n\n E(g, function () {\n a(m, f);\n });\n };\n\n function ta(a, b) {\n a ? this.c = a : this.c = ua;\n this.a = [];\n this.f = [];\n this.g = b || \"\";\n }\n\n var ua = \"https://fonts.googleapis.com/css\";\n\n function va(a, b) {\n for (var c = b.length, d = 0; d < c; d++) {\n var e = b[d].split(\":\");\n 3 == e.length && a.f.push(e.pop());\n var f = \"\";\n 2 == e.length && \"\" != e[1] && (f = \":\");\n a.a.push(e.join(f));\n }\n }\n\n function wa(a) {\n if (0 == a.a.length) throw Error(\"No fonts to load!\");\n if (-1 != a.c.indexOf(\"kit=\")) return a.c;\n\n for (var b = a.a.length, c = [], d = 0; d < b; d++) {\n c.push(a.a[d].replace(/ /g, \"+\"));\n }\n\n b = a.c + \"?family=\" + c.join(\"%7C\");\n 0 < a.f.length && (b += \"&subset=\" + a.f.join(\",\"));\n 0 < a.g.length && (b += \"&text=\" + encodeURIComponent(a.g));\n return b;\n }\n\n ;\n\n function ya(a) {\n this.f = a;\n this.a = [];\n this.c = {};\n }\n\n var za = {\n latin: \"BESbswy\",\n \"latin-ext\": \"\\xE7\\xF6\\xFC\\u011F\\u015F\",\n cyrillic: \"\\u0439\\u044F\\u0416\",\n greek: \"\\u03B1\\u03B2\\u03A3\",\n khmer: \"\\u1780\\u1781\\u1782\",\n Hanuman: \"\\u1780\\u1781\\u1782\"\n },\n Aa = {\n thin: \"1\",\n extralight: \"2\",\n \"extra-light\": \"2\",\n ultralight: \"2\",\n \"ultra-light\": \"2\",\n light: \"3\",\n regular: \"4\",\n book: \"4\",\n medium: \"5\",\n \"semi-bold\": \"6\",\n semibold: \"6\",\n \"demi-bold\": \"6\",\n demibold: \"6\",\n bold: \"7\",\n \"extra-bold\": \"8\",\n extrabold: \"8\",\n \"ultra-bold\": \"8\",\n ultrabold: \"8\",\n black: \"9\",\n heavy: \"9\",\n l: \"3\",\n r: \"4\",\n b: \"7\"\n },\n Ba = {\n i: \"i\",\n italic: \"i\",\n n: \"n\",\n normal: \"n\"\n },\n Ca = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;\n\n function Da(a) {\n for (var b = a.f.length, c = 0; c < b; c++) {\n var d = a.f[c].split(\":\"),\n e = d[0].replace(/\\+/g, \" \"),\n f = [\"n4\"];\n\n if (2 <= d.length) {\n var g;\n var m = d[1];\n g = [];\n if (m) for (var m = m.split(\",\"), h = m.length, l = 0; l < h; l++) {\n var k;\n k = m[l];\n\n if (k.match(/^[\\w-]+$/)) {\n var n = Ca.exec(k.toLowerCase());\n if (null == n) k = \"\";else {\n k = n[2];\n k = null == k || \"\" == k ? \"n\" : Ba[k];\n n = n[1];\n if (null == n || \"\" == n) n = \"4\";else var r = Aa[n],\n n = r ? r : isNaN(n) ? \"4\" : n.substr(0, 1);\n k = [k, n].join(\"\");\n }\n } else k = \"\";\n\n k && g.push(k);\n }\n 0 < g.length && (f = g);\n 3 == d.length && (d = d[2], g = [], d = d ? d.split(\",\") : g, 0 < d.length && (d = za[d[0]]) && (a.c[e] = d));\n }\n\n a.c[e] || (d = za[e]) && (a.c[e] = d);\n\n for (d = 0; d < f.length; d += 1) {\n a.a.push(new G(e, f[d]));\n }\n }\n }\n\n ;\n\n function Ea(a, b) {\n this.c = a;\n this.a = b;\n }\n\n var Fa = {\n Arimo: !0,\n Cousine: !0,\n Tinos: !0\n };\n\n Ea.prototype.load = function (a) {\n var b = new B(),\n c = this.c,\n d = new ta(this.a.api, this.a.text),\n e = this.a.families;\n va(d, e);\n var f = new ya(e);\n Da(f);\n z(c, wa(d), C(b));\n E(b, function () {\n a(f.a, f.c, Fa);\n });\n };\n\n function Ga(a, b) {\n this.c = a;\n this.a = b;\n }\n\n Ga.prototype.load = function (a) {\n var b = this.a.id,\n c = this.c.o;\n b ? A(this.c, (this.a.api || \"https://use.typekit.net\") + \"/\" + b + \".js\", function (b) {\n if (b) a([]);else if (c.Typekit && c.Typekit.config && c.Typekit.config.fn) {\n b = c.Typekit.config.fn;\n\n for (var e = [], f = 0; f < b.length; f += 2) {\n for (var g = b[f], m = b[f + 1], h = 0; h < m.length; h++) {\n e.push(new G(g, m[h]));\n }\n }\n\n try {\n c.Typekit.load({\n events: !1,\n classes: !1,\n async: !0\n });\n } catch (l) {}\n\n a(e);\n }\n }, 2E3) : a([]);\n };\n\n function Ha(a, b) {\n this.c = a;\n this.f = b;\n this.a = [];\n }\n\n Ha.prototype.load = function (a) {\n var b = this.f.id,\n c = this.c.o,\n d = this;\n b ? (c.__webfontfontdeckmodule__ || (c.__webfontfontdeckmodule__ = {}), c.__webfontfontdeckmodule__[b] = function (b, c) {\n for (var g = 0, m = c.fonts.length; g < m; ++g) {\n var h = c.fonts[g];\n d.a.push(new G(h.name, ga(\"font-weight:\" + h.weight + \";font-style:\" + h.style)));\n }\n\n a(d.a);\n }, A(this.c, (this.f.api || \"https://f.fontdeck.com/s/css/js/\") + ea(this.c) + \"/\" + b + \".js\", function (b) {\n b && a([]);\n })) : a([]);\n };\n\n var Y = new oa(window);\n\n Y.a.c.custom = function (a, b) {\n return new sa(b, a);\n };\n\n Y.a.c.fontdeck = function (a, b) {\n return new Ha(b, a);\n };\n\n Y.a.c.monotype = function (a, b) {\n return new ra(b, a);\n };\n\n Y.a.c.typekit = function (a, b) {\n return new Ga(b, a);\n };\n\n Y.a.c.google = function (a, b) {\n return new Ea(b, a);\n };\n\n var Z = {\n load: p(Y.load, Y)\n };\n \"function\" === typeof define && define.amd ? define(function () {\n return Z;\n }) : \"undefined\" !== typeof module && module.exports ? module.exports = Z : (window.WebFont = Z, window.WebFontConfig && Y.load(window.WebFontConfig));\n})();","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = true;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","\"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-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-500-js\": () => import(\"./../../../src/pages/500.js\" /* webpackChunkName: \"component---src-pages-500-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-member-contact-js\": () => import(\"./../../../src/pages/member/contact.js\" /* webpackChunkName: \"component---src-pages-member-contact-js\" */),\n \"component---src-pages-member-index-js\": () => import(\"./../../../src/pages/member/index.js\" /* webpackChunkName: \"component---src-pages-member-index-js\" */),\n \"component---src-pages-member-profile-index-js\": () => import(\"./../../../src/pages/member/profile/index.js\" /* webpackChunkName: \"component---src-pages-member-profile-index-js\" */),\n \"component---src-pages-member-profile-stage-js\": () => import(\"./../../../src/pages/member/profile/stage.js\" /* webpackChunkName: \"component---src-pages-member-profile-stage-js\" */),\n \"component---src-pages-member-room-js\": () => import(\"./../../../src/pages/member/room.js\" /* webpackChunkName: \"component---src-pages-member-room-js\" */),\n \"component---src-pages-member-yu-letter-js\": () => import(\"./../../../src/pages/member/yu-letter.js\" /* webpackChunkName: \"component---src-pages-member-yu-letter-js\" */),\n \"component---src-templates-birthday-index-js\": () => import(\"./../../../src/templates/birthday-index.js\" /* webpackChunkName: \"component---src-templates-birthday-index-js\" */),\n \"component---src-templates-birthday-page-js\": () => import(\"./../../../src/templates/birthday-page.js\" /* webpackChunkName: \"component---src-templates-birthday-page-js\" */),\n \"component---src-templates-express-list-page-js\": () => import(\"./../../../src/templates/express-list-page.js\" /* webpackChunkName: \"component---src-templates-express-list-page-js\" */),\n \"component---src-templates-express-page-js\": () => import(\"./../../../src/templates/express-page.js\" /* webpackChunkName: \"component---src-templates-express-page-js\" */),\n \"component---src-templates-free-page-js\": () => import(\"./../../../src/templates/free-page.js\" /* webpackChunkName: \"component---src-templates-free-page-js\" */),\n \"component---src-templates-meet-list-page-js\": () => import(\"./../../../src/templates/meet-list-page.js\" /* webpackChunkName: \"component---src-templates-meet-list-page-js\" */),\n \"component---src-templates-meet-page-js\": () => import(\"./../../../src/templates/meet-page.js\" /* webpackChunkName: \"component---src-templates-meet-page-js\" */),\n \"component---src-templates-news-list-page-js\": () => import(\"./../../../src/templates/news-list-page.js\" /* webpackChunkName: \"component---src-templates-news-list-page-js\" */),\n \"component---src-templates-news-page-js\": () => import(\"./../../../src/templates/news-page.js\" /* webpackChunkName: \"component---src-templates-news-page-js\" */),\n \"component---src-templates-yutoyou-list-page-js\": () => import(\"./../../../src/templates/yutoyou-list-page.js\" /* webpackChunkName: \"component---src-templates-yutoyou-list-page-js\" */),\n \"component---src-templates-yutoyou-page-js\": () => import(\"./../../../src/templates/yutoyou-page.js\" /* webpackChunkName: \"component---src-templates-yutoyou-page-js\" */)\n}\n\n","module.exports = [{\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\":[],\"schema\":{\"perPage\":20,\"requestConcurrency\":3,\"previewRequestConcurrency\":6,\"queryDepth\":15,\"circularQueryLimit\":5,\"typePrefix\":\"Wp\",\"timeout\":30000},\"develop\":{\"hardCacheMediaFiles\":true,\"nodeUpdateInterval\":5000,\"hardCacheData\":false},\"url\":\"https://fcrabupi-api.shirota-yu.com/wp/graphql\",\"verbose\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"UA-207983937-1\",\"head\":false,\"anonymize\":false,\"respectDNT\":false,\"exclude\":[],\"pageTransitionDelay\":0,\"enableWebVitalsTracking\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-web-font-loader/gatsby-browser.js'),\n options: {\"plugins\":[],\"typekit\":{\"id\":\"ynv7apk\"}},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"fcrabupi.shirota-yu.com\",\"short_name\":\"fcrabupi.shirota-yu.com\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#ffffff\",\"display\":\"minimal-ui\",\"icon\":\"src/assets/images/icon.png\",\"crossorign\":\"use-credentials\",\"cache_busting_mode\":\"query\",\"include_favicon\":true,\"legacy\":true,\"theme_color_in_head\":true,\"cacheDigest\":\"d94688b02c4b589c593e6f7fe32ebfc7\"},\n },{\n plugin: require('../node_modules/gatsby-remark-autolink-headers/gatsby-browser.js'),\n options: {\"plugins\":[],\"offsetY\":100,\"icon\":false,\"className\":\"anchor-\",\"maintainCase\":true,\"removeAccents\":true},\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","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&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.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) {\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\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\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(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)\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","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport * as React from 'react';\nimport Cookies from 'universal-cookie';\nimport { Provider } from './CookiesContext';\n\nvar CookiesProvider = function (_super) {\n __extends(CookiesProvider, _super);\n\n function CookiesProvider(props) {\n var _this = _super.call(this, props) || this;\n\n if (props.cookies) {\n _this.cookies = props.cookies;\n } else {\n _this.cookies = new Cookies();\n }\n\n return _this;\n }\n\n CookiesProvider.prototype.render = function () {\n return React.createElement(Provider, {\n value: this.cookies\n }, this.props.children);\n };\n\n return CookiesProvider;\n}(React.Component);\n\nexport default CookiesProvider;","import * as React from 'react';\nimport Cookies from './Cookies';\nvar CookiesContext = React.createContext(new Cookies());\nexport var Provider = CookiesContext.Provider,\n Consumer = CookiesContext.Consumer;\nexport default CookiesContext;","import React from 'react'\nimport { RecoilRoot } from 'recoil'\nimport { CookiesProvider } from 'react-cookie';\n\nconst wrapWithProvider = ({ element}) => {\n return \n {element}\n \n}\nexport default wrapWithProvider","// import 'react-app-polyfill/ie11';\nimport wrapWithProvider from './gatsby/wrap-with-provider'\nimport wrapWithLayout from './gatsby/wrap-with-layout'\n\n// import 'prismjs/themes/prism-tomorrow.css'/\n// import \"prismjs/plugins/command-line/prism-command-line.css\"\n\n//mobx\nexport const wrapRootElement = wrapWithProvider\nexport const wrapPageElement = wrapWithLayout","import React from 'react'\nimport { TransitionLayout } from \"@layouts/TransitionLayout\"\n\nconst wrapWithLayout = ({ element, props }) => {\n return {element}\n}\n\nexport default wrapWithLayout","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\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;\n\nvar _escapeStringRegexp = _interopRequireDefault(require(\"escape-string-regexp\"));\n\nvar _gatsby = require(\"gatsby\");\n\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\n\nexports.userIsForcingNavigation = userIsForcingNavigation;\n\nvar slashedPathname = function slashedPathname(pathname) {\n return pathname[0] === \"/\" ? pathname : \"/\" + pathname;\n};\n\nexports.slashedPathname = slashedPathname;\n\nvar navigationWasHandledElsewhere = function navigationWasHandledElsewhere(event) {\n return event.defaultPrevented;\n};\n\nexports.navigationWasHandledElsewhere = navigationWasHandledElsewhere;\n\nvar findClosestAnchor = function findClosestAnchor(node) {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\n\nexports.findClosestAnchor = findClosestAnchor;\n\nvar anchorsTargetIsEquivalentToSelf = function anchorsTargetIsEquivalentToSelf(anchor) {\n return (\n /* 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 || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView)\n );\n};\n\nexports.anchorsTargetIsEquivalentToSelf = anchorsTargetIsEquivalentToSelf;\n\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\n\nexports.authorIsForcingNavigation = authorIsForcingNavigation;\n\nvar urlsAreOnSameOrigin = function urlsAreOnSameOrigin(origin, destination) {\n return origin.protocol === destination.protocol &&\n /* a.host includes both hostname and port in the expected format host:port */\n origin.host === destination.host;\n};\n\nexports.urlsAreOnSameOrigin = urlsAreOnSameOrigin;\n\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};\n\nexports.pathIsNotHandledByApp = pathIsNotHandledByApp;\n\nvar hashShouldBeFollowed = function hashShouldBeFollowed(origin, destination) {\n return destination.hash !== \"\" && (destination.pathname === \"\" ||\n /* Don't catch links pointed to the same page but with a hash. */\n destination.pathname === origin.pathname);\n};\n\nexports.hashShouldBeFollowed = hashShouldBeFollowed;\n\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\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\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\n if (pluginOptions.excludePattern) {\n var excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\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};\n\nexports.routeThroughBrowserOrApp = routeThroughBrowserOrApp;\n\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\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _catchLinks = _interopRequireDefault(require(\"./catch-links\"));\n\nexports.onClientEntry = function (_, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n (0, _catchLinks.default)(window, pluginOptions, function (href) {\n (0, _gatsby.navigate)(href);\n });\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() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\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 sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: 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 eventLabel: 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 eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\n\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\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 /* 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 this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading,\n isLoaded: state.isLoaded,\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;","const WebFont = require('webfontloader')\n\nexports.onInitialClientRender = (a, options) => {\n\toptions = { ...options }\n\tdelete options.plugins\n\tWebFont.load(options)\n}","\"use strict\";\n\nvar offsetY = 0;\n\nvar getTargetOffset = function getTargetOffset(hash) {\n var id = window.decodeURI(hash.replace(\"#\", \"\"));\n\n if (id !== \"\") {\n var element = document.getElementById(id);\n\n if (element) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\n var computedStyles = window.getComputedStyle(element);\n var scrollMarginTop = computedStyles.getPropertyValue(\"scroll-margin-top\") || computedStyles.getPropertyValue(\"scroll-snap-margin-top\") || \"0px\";\n return element.getBoundingClientRect().top + scrollTop - parseInt(scrollMarginTop, 10) - clientTop - offsetY;\n }\n }\n\n return null;\n};\n\nexports.onInitialClientRender = function (_, pluginOptions) {\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n\n requestAnimationFrame(function () {\n var offset = getTargetOffset(window.location.hash);\n\n if (offset !== null) {\n window.scrollTo(0, offset);\n }\n });\n};\n\nexports.shouldUpdateScroll = function (_ref) {\n var location = _ref.routerProps.location;\n var offset = getTargetOffset(location.hash);\n return offset !== null ? [0, offset] : true;\n};","import React from \"react\"\nimport { getImage, GatsbyImage, StaticImage } from \"gatsby-plugin-image\"\n\nconst ImagesPath = \"../../assets/images\"\n\nconst ImageParams = {\n formats: [\"auto\", \"webp\"],\n layout: \"fullWidth\",\n aspectRatio: 3 / 1,\n}\n\nfunction Image({ data, alt=\"\", ...props }) {\n const img = getImage(data)\n return (\n \n )\n}\n\nexport { Image, StaticImage, ImageParams, ImagesPath }","import React from \"react\"\nimport { navigate } from 'gatsby-link'\nimport { globalHistory } from '@reach/router'\nimport { useTransition } from '@layouts/TransitionLayout'\nimport { SmoothScroll } from '@hooks/useSmoothScroll'\n// import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\n// import { modalMenuState } from '@states/modal-menu-state'\n\n// import { useStore } from '@hooks/useStore'\nconst TransitionLink = ({\n\tchildren,\n\tto,\n\tblank,\n\tscroll,\n\tonClick,\n\t...other\n}) => {\n\t// let modalMenuValue = useRecoilValue(modalMenuState)\n\t// let setModalMenuValue = useSetRecoilState(modalMenuState)\n\tconst { transitionState, setTranstionState, duration } = useTransition()\n\n\tlet isInternal = /^\\/(?!\\/)/.test(to)\n\tlet isHash = /^(!?#)/.test(to)\n\t// const { appStore } = useStore()\n\n\tif (isHash || scroll) {\n\t\tisInternal = true\n\t}\n\n\tconst { location } = globalHistory\n\n\tconst onClickHandler = (e) => {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tif( transitionState !== 0){ return }\n\t\tif (location.pathname === to || !to) {\n\t\t\tif (scroll) {\n\t\t\t\t// console.log(scroll)\n\t\t\t\tonClick && onClick()\n\t\t\t\tSmoothScroll(scroll)\n\t\t\t} else {\n\t\t\t\tonClick && onClick()\n\t\t\t\tSmoothScroll('#root-container')\n\t\t\t}\n\t\t\treturn\n\t\t} else {\n\n\t\t\tonClick && onClick()\n\t\t\tsetTranstionState(1)\n\t\t\t// if( modalMenuValue === 1){\n\t\t\t// \tsetModalMenuValue(0)\n\t\t\t// }\n\t\t\tsetTimeout(() => {\n\t\t\t\tnavigate(`${to}`)\n\t\t\t\tif (scroll) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tSmoothScroll(scroll)\n\t\t\t\t\t}, 1000)\n\t\t\t\t}\n\t\t\t}, duration * 1000)\n\t\t}\n\t}\n\n\t// useEffect(()=>{\n\t// })\n\n\treturn (\n\t\t<>\n\t\t{ isInternal ?\n\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t:\n\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t}\n\t\t\n\t)\n}\nexport { TransitionLink }","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () {\n return function () {\n return callback();\n };\n }, []);\n}\n\nexport { useUnmountEffect };","import { createContext } from 'react';\n/**\n * @public\n */\n\nvar PresenceContext = createContext(null);\nexport { PresenceContext };","import { useRef } from 'react';\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\n\nfunction useConstant(init) {\n var ref = useRef(null);\n\n if (ref.current === null) {\n ref.current = init();\n }\n\n return ref.current;\n}\n\nexport { useConstant };","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\nvar presenceId = 0;\n\nfunction getPresenceId() {\n var id = presenceId;\n presenceId++;\n return id;\n}\n\nvar PresenceChild = function PresenceChild(_a) {\n var children = _a.children,\n initial = _a.initial,\n isPresent = _a.isPresent,\n _onExitComplete = _a.onExitComplete,\n custom = _a.custom,\n presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useConstant(getPresenceId);\n var context = useMemo(function () {\n return {\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function onExitComplete(childId) {\n presenceChildren.set(childId, true);\n var allComplete = true;\n presenceChildren.forEach(function (isComplete) {\n if (!isComplete) allComplete = false;\n });\n allComplete && (_onExitComplete === null || _onExitComplete === void 0 ? void 0 : _onExitComplete());\n },\n register: function register(childId) {\n presenceChildren.set(childId, false);\n return function () {\n return presenceChildren.delete(childId);\n };\n }\n };\n },\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) {\n return presenceChildren.set(key, false);\n });\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n\n React.useEffect(function () {\n !isPresent && !presenceChildren.size && (_onExitComplete === null || _onExitComplete === void 0 ? void 0 : _onExitComplete());\n }, [isPresent]);\n return React.createElement(PresenceContext.Provider, {\n value: context\n }, children);\n};\n\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };","var defaultTimestep = 1 / 60 * 1000;\nvar getCurrentTime = typeof performance !== \"undefined\" ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nvar onNextFrame = typeof window !== \"undefined\" ? function (callback) {\n return window.requestAnimationFrame(callback);\n} : function (callback) {\n return setTimeout(function () {\n return callback(getCurrentTime());\n }, defaultTimestep);\n};\nexport { defaultTimestep, onNextFrame };","import { onNextFrame, defaultTimestep } from './on-next-frame.js';\nimport { createRenderStep } from './create-render-step.js';\nvar maxElapsed = 40;\nvar useDefaultElapsed = true;\nvar runNextFrame = false;\nvar isProcessing = false;\nvar frame = {\n delta: 0,\n timestamp: 0\n};\nvar stepsOrder = [\"read\", \"update\", \"preRender\", \"render\", \"postRender\"];\nvar steps = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = createRenderStep(function () {\n return runNextFrame = true;\n });\n return acc;\n}, {});\nvar sync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n var step = steps[key];\n\n acc[key] = function (process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n if (!runNextFrame) startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n\n return acc;\n}, {});\nvar cancelSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nvar flushSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = function () {\n return steps[key].process(frame);\n };\n\n return acc;\n}, {});\n\nvar processStep = function processStep(stepId) {\n return steps[stepId].process(frame);\n};\n\nvar processFrame = function processFrame(timestamp) {\n runNextFrame = false;\n frame.delta = useDefaultElapsed ? defaultTimestep : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\n\nvar startLoop = function startLoop() {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing) onNextFrame(processFrame);\n};\n\nvar getFrameData = function getFrameData() {\n return frame;\n};\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };","function createRenderStep(runNextFrame) {\n var toRun = [];\n var toRunNextFrame = [];\n var numToRun = 0;\n var isProcessing = false;\n var toKeepAlive = new WeakSet();\n var step = {\n schedule: function schedule(callback, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n var addToCurrentFrame = immediate && isProcessing;\n var buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive) toKeepAlive.add(callback);\n\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing) numToRun = toRun.length;\n }\n\n return callback;\n },\n cancel: function cancel(callback) {\n var index = toRunNextFrame.indexOf(callback);\n if (index !== -1) toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: function process(frameData) {\n var _a;\n\n isProcessing = true;\n _a = [toRunNextFrame, toRun], toRun = _a[0], toRunNextFrame = _a[1];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n\n if (numToRun) {\n for (var i = 0; i < numToRun; i++) {\n var callback = toRun[i];\n callback(frameData);\n\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n\n isProcessing = false;\n }\n };\n return step;\n}\n\nexport { createRenderStep };","function noop(any) {\n return any;\n}\n\nexport { noop };","import { __assign } from 'tslib';\nimport { noop } from '../noop.js';\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\n\nfunction convertBoundingBoxToAxisBox(_a) {\n var top = _a.top,\n left = _a.left,\n right = _a.right,\n bottom = _a.bottom;\n return {\n x: {\n min: left,\n max: right\n },\n y: {\n min: top,\n max: bottom\n }\n };\n}\n\nfunction convertAxisBoxToBoundingBox(_a) {\n var x = _a.x,\n y = _a.y;\n return {\n top: y.min,\n bottom: y.max,\n left: x.min,\n right: x.max\n };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\n\n\nfunction transformBoundingBox(_a, transformPoint) {\n var top = _a.top,\n left = _a.left,\n bottom = _a.bottom,\n right = _a.right;\n\n if (transformPoint === void 0) {\n transformPoint = noop;\n }\n\n var topLeft = transformPoint({\n x: left,\n y: top\n });\n var bottomRight = transformPoint({\n x: right,\n y: bottom\n });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x\n };\n}\n/**\n * Create an empty axis box of zero size\n */\n\n\nfunction axisBox() {\n return {\n x: {\n min: 0,\n max: 1\n },\n y: {\n min: 0,\n max: 1\n }\n };\n}\n\nfunction copyAxisBox(box) {\n return {\n x: __assign({}, box.x),\n y: __assign({}, box.y)\n };\n}\n/**\n * Create an empty box delta\n */\n\n\nvar zeroDelta = {\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0\n};\n\nfunction delta() {\n return {\n x: __assign({}, zeroDelta),\n y: __assign({}, zeroDelta)\n };\n}\n\nexport { axisBox, convertAxisBoxToBoundingBox, convertBoundingBoxToAxisBox, copyAxisBox, delta, transformBoundingBox };","var compareByDepth = function compareByDepth(a, b) {\n return a.depth - b.depth;\n};\n\nexport { compareByDepth };","import sync from 'framesync';\nimport { copyAxisBox } from '../../../utils/geometry/index.js';\nimport { compareByDepth } from '../../utils/compare-by-depth.js';\n\nfunction isProjecting(visualElement) {\n var isEnabled = visualElement.projection.isEnabled;\n return isEnabled || visualElement.shouldResetTransform();\n}\n\nfunction collectProjectingAncestors(visualElement, ancestors) {\n if (ancestors === void 0) {\n ancestors = [];\n }\n\n var parent = visualElement.parent;\n if (parent) collectProjectingAncestors(parent, ancestors);\n if (isProjecting(visualElement)) ancestors.push(visualElement);\n return ancestors;\n}\n\nfunction collectProjectingChildren(visualElement) {\n var children = [];\n\n var addChild = function addChild(child) {\n if (isProjecting(child)) children.push(child);\n child.children.forEach(addChild);\n };\n\n visualElement.children.forEach(addChild);\n return children.sort(compareByDepth);\n}\n/**\n * Update the layoutState by measuring the DOM layout. This\n * should be called after resetting any layout-affecting transforms.\n */\n\n\nfunction updateLayoutMeasurement(visualElement) {\n if (visualElement.shouldResetTransform()) return;\n var layoutState = visualElement.getLayoutState();\n visualElement.notifyBeforeLayoutMeasure(layoutState.layout);\n layoutState.isHydrated = true;\n layoutState.layout = visualElement.measureViewportBox();\n layoutState.layoutCorrected = copyAxisBox(layoutState.layout);\n visualElement.notifyLayoutMeasure(layoutState.layout, visualElement.prevViewportBox || layoutState.layout);\n sync.update(function () {\n return visualElement.rebaseProjectionTarget();\n });\n}\n/**\n * Record the viewport box as it was before an expected mutation/re-render\n */\n\n\nfunction snapshotViewportBox(visualElement) {\n if (visualElement.shouldResetTransform()) return;\n visualElement.prevViewportBox = visualElement.measureViewportBox(false);\n /**\n * Update targetBox to match the prevViewportBox. This is just to ensure\n * that targetBox is affected by scroll in the same way as the measured box\n */\n\n visualElement.rebaseProjectionTarget(false, visualElement.prevViewportBox);\n}\n\nexport { collectProjectingAncestors, collectProjectingChildren, snapshotViewportBox, updateLayoutMeasurement };","var unresolvedJobs = new Set();\n\nfunction pushJob(stack, job, pointer) {\n if (!stack[pointer]) stack[pointer] = [];\n stack[pointer].push(job);\n}\n\nfunction batchLayout(callback) {\n unresolvedJobs.add(callback);\n return function () {\n return unresolvedJobs.delete(callback);\n };\n}\n\nfunction flushLayout() {\n if (!unresolvedJobs.size) return;\n var pointer = 0;\n var reads = [[]];\n var writes = [];\n\n var setRead = function setRead(job) {\n return pushJob(reads, job, pointer);\n };\n\n var setWrite = function setWrite(job) {\n pushJob(writes, job, pointer);\n pointer++;\n };\n /**\n * Resolve jobs into their array stacks\n */\n\n\n unresolvedJobs.forEach(function (callback) {\n callback(setRead, setWrite);\n pointer = 0;\n });\n unresolvedJobs.clear();\n /**\n * Execute jobs\n */\n\n var numStacks = writes.length;\n\n for (var i = 0; i <= numStacks; i++) {\n reads[i] && reads[i].forEach(executeJob);\n writes[i] && writes[i].forEach(executeJob);\n }\n}\n\nvar executeJob = function executeJob(job) {\n return job();\n};\n\nexport { batchLayout, flushLayout };","/**\n * @public\n */\nvar Presence;\n\n(function (Presence) {\n Presence[Presence[\"Entering\"] = 0] = \"Entering\";\n Presence[Presence[\"Present\"] = 1] = \"Present\";\n Presence[Presence[\"Exiting\"] = 2] = \"Exiting\";\n})(Presence || (Presence = {}));\n/**\n * @public\n */\n\n\nvar VisibilityAction;\n\n(function (VisibilityAction) {\n VisibilityAction[VisibilityAction[\"Hide\"] = 0] = \"Hide\";\n VisibilityAction[VisibilityAction[\"Show\"] = 1] = \"Show\";\n})(VisibilityAction || (VisibilityAction = {}));\n\nexport { Presence, VisibilityAction };","import { __spreadArray, __read } from 'tslib';\nimport sync, { flushSync } from 'framesync';\nimport { collectProjectingAncestors, updateLayoutMeasurement } from '../../../render/dom/projection/utils.js';\nimport { batchLayout, flushLayout } from '../../../render/dom/utils/batch-layout.js';\nimport { compareByDepth } from '../../../render/utils/compare-by-depth.js';\nimport { Presence } from '../types.js';\n/**\n * Default handlers for batching VisualElements\n */\n\nvar defaultHandler = {\n layoutReady: function layoutReady(child) {\n return child.notifyLayoutReady();\n }\n};\n/**\n * Create a batcher to process VisualElements\n */\n\nfunction createBatcher() {\n var queue = new Set();\n return {\n add: function add(child) {\n return queue.add(child);\n },\n flush: function flush(_a) {\n var _b = _a === void 0 ? defaultHandler : _a,\n layoutReady = _b.layoutReady,\n parent = _b.parent;\n\n batchLayout(function (read, write) {\n var order = Array.from(queue).sort(compareByDepth);\n var ancestors = parent ? collectProjectingAncestors(parent) : [];\n write(function () {\n var allElements = __spreadArray(__spreadArray([], __read(ancestors)), __read(order));\n\n allElements.forEach(function (element) {\n return element.resetTransform();\n });\n });\n read(function () {\n order.forEach(updateLayoutMeasurement);\n });\n write(function () {\n ancestors.forEach(function (element) {\n return element.restoreTransform();\n });\n order.forEach(layoutReady);\n });\n read(function () {\n /**\n * After all children have started animating, ensure any Entering components are set to Present.\n * If we add deferred animations (set up all animations and then start them in two loops) this\n * could be moved to the start loop. But it needs to happen after all the animations configs\n * are generated in AnimateSharedLayout as this relies on presence data\n */\n order.forEach(function (child) {\n if (child.isPresent) child.presence = Presence.Present;\n });\n });\n write(function () {\n /**\n * Starting these animations will have queued jobs on the frame loop. In some situations,\n * like when removing an element, these will be processed too late after the DOM is manipulated,\n * leaving a flash of incorrectly-projected content. By manually flushing these jobs\n * we ensure there's no flash.\n */\n flushSync.preRender();\n flushSync.render();\n });\n read(function () {\n /**\n * Schedule a callback at the end of the following frame to assign the latest projection\n * box to the prevViewportBox snapshot. Once global batching is in place this could be run\n * synchronously. But for now it ensures that if any nested `AnimateSharedLayout` top-level\n * child attempts to calculate its previous relative position against a prevViewportBox\n * it will be against its latest projection box instead, as the snapshot is useless beyond this\n * render.\n */\n sync.postRender(function () {\n return order.forEach(assignProjectionToSnapshot);\n });\n queue.clear();\n });\n }); // TODO: Need to find a layout-synchronous way of flushing this\n\n flushLayout();\n }\n };\n}\n\nfunction assignProjectionToSnapshot(child) {\n child.prevViewportBox = child.projection.target;\n}\n\nexport { createBatcher };","import { createContext } from 'react';\nimport { createBatcher } from '../components/AnimateSharedLayout/utils/batcher.js';\nvar SharedLayoutContext = createContext(createBatcher());\n/**\n * @internal\n */\n\nvar FramerTreeLayoutContext = createContext(createBatcher());\n\nfunction isSharedLayout(context) {\n return !!context.forceUpdate;\n}\n\nexport { FramerTreeLayoutContext, SharedLayoutContext, isSharedLayout };","import { __spreadArray, __read } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.js';\nimport { PresenceChild } from './PresenceChild.js';\nimport { SharedLayoutContext, isSharedLayout } from '../../context/SharedLayoutContext.js';\n\nfunction getChildKey(child) {\n return child.key || \"\";\n}\n\nfunction updateChildLookup(children, allChildren) {\n var seenChildren = process.env.NODE_ENV !== \"production\" ? new Set() : null;\n children.forEach(function (child) {\n var key = getChildKey(child);\n\n if (process.env.NODE_ENV !== \"production\" && seenChildren) {\n if (seenChildren.has(key)) {\n console.warn(\"Children of AnimatePresence require unique keys. \\\"\" + key + \"\\\" is a duplicate.\");\n }\n\n seenChildren.add(key);\n }\n\n allChildren.set(key, child);\n });\n}\n\nfunction onlyElements(children) {\n var filtered = []; // We use forEach here instead of map as map mutates the component key by preprending `.$`\n\n Children.forEach(children, function (child) {\n if (isValidElement(child)) filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * @library\n *\n * Any `Frame` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { Frame, AnimatePresence } from 'framer'\n *\n * // As items are added and removed from `items`\n * export function Items({ items }) {\n * return (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * }\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * @motion\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\n\n\nvar AnimatePresence = function AnimatePresence(_a) {\n var children = _a.children,\n custom = _a.custom,\n _b = _a.initial,\n initial = _b === void 0 ? true : _b,\n onExitComplete = _a.onExitComplete,\n exitBeforeEnter = _a.exitBeforeEnter,\n _c = _a.presenceAffectsLayout,\n presenceAffectsLayout = _c === void 0 ? true : _c; // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n\n var forceRender = useForceUpdate();\n var layoutContext = useContext(SharedLayoutContext);\n\n if (isSharedLayout(layoutContext)) {\n forceRender = layoutContext.forceUpdate;\n }\n\n var isInitialRender = useRef(true); // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n\n var filteredChildren = onlyElements(children); // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n\n var presentChildren = useRef(filteredChildren); // A lookup table to quickly reference components by key\n\n var allChildren = useRef(new Map()).current; // A living record of all currently exiting components.\n\n var exiting = useRef(new Set()).current;\n updateChildLookup(filteredChildren, allChildren); // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n\n if (isInitialRender.current) {\n isInitialRender.current = false;\n return React.createElement(React.Fragment, null, filteredChildren.map(function (child) {\n return React.createElement(PresenceChild, {\n key: getChildKey(child),\n isPresent: true,\n initial: initial ? undefined : false,\n presenceAffectsLayout: presenceAffectsLayout\n }, child);\n }));\n } // If this is a subsequent render, deal with entering and exiting children\n\n\n var childrenToRender = __spreadArray([], __read(filteredChildren)); // Diff the keys of the currently-present and target children to update our\n // exiting list.\n\n\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey); // Diff the present children with our target children and mark those that are exiting\n\n var numPresent = presentKeys.length;\n\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n } else {\n // In case this key has re-entered, remove from the exiting list\n exiting.delete(key);\n }\n } // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n\n\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n } // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n\n\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1) return;\n var child = allChildren.get(key);\n if (!child) return;\n var insertionIndex = presentKeys.indexOf(key);\n\n var onExit = function onExit() {\n allChildren.delete(key);\n exiting.delete(key); // Remove this child from the present children\n\n var removeIndex = presentChildren.current.findIndex(function (presentChild) {\n return presentChild.key === key;\n });\n presentChildren.current.splice(removeIndex, 1); // Defer re-rendering until all exiting children have indeed left\n\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, {\n key: getChildKey(child),\n isPresent: false,\n onExitComplete: onExit,\n custom: custom,\n presenceAffectsLayout: presenceAffectsLayout\n }, child));\n }); // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? child : React.createElement(PresenceChild, {\n key: getChildKey(child),\n isPresent: true,\n presenceAffectsLayout: presenceAffectsLayout\n }, child);\n });\n presentChildren.current = childrenToRender;\n\n if (process.env.NODE_ENV !== \"production\" && exitBeforeEnter && childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n\n return React.createElement(React.Fragment, null, exiting.size ? childrenToRender : childrenToRender.map(function (child) {\n return cloneElement(child);\n }));\n};\n\nexport { AnimatePresence };","import { __read } from 'tslib';\nimport { useCallback, useRef, useState } from 'react';\nimport { useUnmountEffect } from './use-unmount-effect.js';\n\nfunction useForceUpdate() {\n var unloadingRef = useRef(false);\n\n var _a = __read(useState(0), 2),\n forcedRenderCount = _a[0],\n setForcedRenderCount = _a[1];\n\n useUnmountEffect(function () {\n return unloadingRef.current = true;\n });\n return useCallback(function () {\n !unloadingRef.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n}\n\nexport { useForceUpdate };","var createDefinition = function createDefinition(propNames) {\n return {\n isEnabled: function isEnabled(props) {\n return propNames.some(function (name) {\n return !!props[name];\n });\n }\n };\n};\n\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\", \"_layoutResetTransform\"]),\n animation: createDefinition([\"animate\", \"exit\", \"variants\", \"whileHover\", \"whileTap\", \"whileFocus\", \"whileDrag\"]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"]),\n layoutAnimation: createDefinition([\"layout\", \"layoutId\"])\n};\n\nfunction loadFeatures(features) {\n for (var key in features) {\n var Component = features[key];\n if (Component !== null) featureDefinitions[key].Component = Component;\n }\n}\n\nexport { featureDefinitions, loadFeatures };","import { createContext } from 'react';\nvar LazyContext = createContext({\n strict: false\n});\nexport { LazyContext };","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { featureDefinitions } from './definitions.js';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.js';\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\n\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement) return null;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n\n if (process.env.NODE_ENV !== \"production\" && preloadedFeatures && lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1],\n isEnabled = _a.isEnabled,\n Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({\n key: name_1\n }, props, {\n visualElement: visualElement\n })));\n }\n }\n\n return features;\n}\n\nexport { useFeatures };","import { createContext } from 'react';\n/**\n * @public\n */\n\nvar MotionConfigContext = createContext({\n transformPagePoint: function transformPagePoint(p) {\n return p;\n },\n isStatic: false\n});\nexport { MotionConfigContext };","import { useContext, createContext } from 'react';\nvar MotionContext = createContext({});\n\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\n\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null) return [true, null];\n var isPresent = context.isPresent,\n onExitComplete = context.onExitComplete,\n register = context.register; // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useOpaqueId when released in React\n\n var id = useUniqueId();\n useEffect(function () {\n return register(id);\n }, []);\n\n var safeToRemove = function safeToRemove() {\n return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id);\n };\n\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\n\n\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\n\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nvar counter = 0;\n\nvar incrementId = function incrementId() {\n return counter++;\n};\n\nvar useUniqueId = function useUniqueId() {\n return useConstant(incrementId);\n};\n\nexport { isPresent, useIsPresent, usePresence };","import { createContext } from 'react';\n/**\n * @internal\n */\n\nvar LayoutGroupContext = createContext(null);\nexport { LayoutGroupContext };","var isBrowser = typeof window !== \"undefined\";\nexport { isBrowser };","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.js';\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nexport { useIsomorphicLayoutEffect };","import { __assign } from 'tslib';\nimport { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { isPresent } from '../../components/AnimatePresence/use-presence.js';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.js';\nimport { useVisualElementContext } from '../../context/MotionContext/index.js';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.js';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.js';\nimport { LazyContext } from '../../context/LazyContext.js';\n\nfunction useLayoutId(_a) {\n var layoutId = _a.layoutId;\n var layoutGroupId = useContext(LayoutGroupContext);\n return layoutGroupId && layoutId !== undefined ? layoutGroupId + \"-\" + layoutId : layoutId;\n}\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n var config = useContext(MotionConfigContext);\n var lazyContext = useContext(LazyContext);\n var parent = useVisualElementContext();\n var presenceContext = useContext(PresenceContext);\n var layoutId = useLayoutId(props);\n var visualElementRef = useRef(undefined);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n\n if (!createVisualElement) createVisualElement = lazyContext.renderer;\n\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState: visualState,\n parent: parent,\n props: __assign(__assign({}, props), {\n layoutId: layoutId\n }),\n presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false\n });\n }\n\n var visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(function () {\n if (!visualElement) return;\n visualElement.setProps(__assign(__assign(__assign({}, config), props), {\n layoutId: layoutId\n }));\n visualElement.isPresent = isPresent(presenceContext);\n visualElement.isPresenceRoot = !parent || parent.presenceId !== (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id);\n /**\n * Fire a render to ensure the latest state is reflected on-screen.\n */\n\n visualElement.syncRender();\n });\n useEffect(function () {\n var _a;\n\n if (!visualElement) return;\n /**\n * In a future refactor we can replace the features-as-components and\n * have this loop through them all firing \"effect\" listeners\n */\n\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n });\n useIsomorphicLayoutEffect(function () {\n return function () {\n return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount();\n };\n }, []);\n return visualElement;\n}\n\nexport { useVisualElement };","function isRefObject(ref) {\n return typeof ref === \"object\" && Object.prototype.hasOwnProperty.call(ref, \"current\");\n}\n\nexport { isRefObject };","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\n\n\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\n\n\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) {\n return current[key] = value.get();\n });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\n\n\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) {\n return velocity[key] = value.getVelocity();\n });\n return velocity;\n}\n\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n var _a;\n\n if (currentValues === void 0) {\n currentValues = {};\n }\n\n if (currentVelocity === void 0) {\n currentVelocity = {};\n }\n\n if (typeof definition === \"string\") {\n definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];\n }\n\n return typeof definition === \"function\" ? definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity) : definition;\n}\n\nfunction resolveVariant(visualElement, definition, custom) {\n var props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nfunction checkIfControllingVariants(props) {\n var _a;\n\n return typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" || isVariantLabel(props.initial) || isVariantLabel(props.animate) || isVariantLabel(props.whileHover) || isVariantLabel(props.whileDrag) || isVariantLabel(props.whileTap) || isVariantLabel(props.whileFocus) || isVariantLabel(props.exit);\n}\n\nfunction checkIfVariantNode(props) {\n return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.js';\nimport { getCurrentTreeVariants } from './utils.js';\n\nfunction useCreateMotionContext(props, isStatic) {\n var _a = getCurrentTreeVariants(props, useContext(MotionContext)),\n initial = _a.initial,\n animate = _a.animate;\n\n return useMemo(function () {\n return {\n initial: initial,\n animate: animate\n };\n },\n /**\n * Only break memoisation in static mode\n */\n isStatic ? [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)] : []);\n}\n\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.js';\n\nfunction getCurrentTreeVariants(props, context) {\n if (checkIfControllingVariants(props)) {\n var initial = props.initial,\n animate = props.animate;\n return {\n initial: initial === false || isVariantLabel(initial) ? initial : undefined,\n animate: isVariantLabel(animate) ? animate : undefined\n };\n }\n\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.js';\nimport { MotionConfigContext } from '../context/MotionConfigContext.js';\nimport { MotionContext } from '../context/MotionContext/index.js';\nimport { useVisualElement } from './utils/use-visual-element.js';\nimport { useMotionRef } from './utils/use-motion-ref.js';\nimport { useCreateMotionContext } from '../context/MotionContext/create.js';\nimport { loadFeatures } from './features/definitions.js';\nimport { isBrowser } from '../utils/is-browser.js';\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n *\n * @internal\n */\n\nfunction createMotionComponent(_a) {\n var preloadedFeatures = _a.preloadedFeatures,\n createVisualElement = _a.createVisualElement,\n useRender = _a.useRender,\n useVisualState = _a.useVisualState,\n Component = _a.Component;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n\n function MotionComponent(props, externalRef) {\n /**\n * If we're rendering in a static environment, we only visually update the component\n * as a result of a React-rerender rather than interactions or animations. This\n * means we don't need to load additional memory structures like VisualElement,\n * or any gesture/animation features.\n */\n var isStatic = useContext(MotionConfigContext).isStatic;\n var features = null;\n /**\n * Create the tree context. This is memoized and will only trigger renders\n * when the current tree variant changes in static mode.\n */\n\n var context = useCreateMotionContext(props, isStatic);\n /**\n *\n */\n\n var visualState = useVisualState(props, isStatic);\n\n if (!isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, props, createVisualElement);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n *\n * TODO: The intention is to move these away from a React-centric to a\n * VisualElement-centric lifecycle scheme.\n */\n\n features = useFeatures(props, context.visualElement, preloadedFeatures);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n\n\n return React.createElement(React.Fragment, null, React.createElement(MotionContext.Provider, {\n value: context\n }, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic)), features);\n }\n\n return forwardRef(MotionComponent);\n}\n\nexport { createMotionComponent };","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.js';\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\n\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback(function (instance) {\n var _a;\n\n instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));\n\n if (visualElement) {\n instance ? visualElement.mount(instance) : visualElement.unmount();\n }\n\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n } else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n },\n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };","import { createMotionComponent } from '../../motion/index.js';\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\n\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) {\n customMotionComponentConfig = {};\n }\n\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n\n\n var componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: function get(_target, key) {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n\n return componentCache.get(key);\n }\n });\n}\n\nexport { createMotionProxy };","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\"animate\", \"circle\", \"defs\", \"desc\", \"ellipse\", \"g\", \"image\", \"line\", \"filter\", \"marker\", \"mask\", \"metadata\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"rect\", \"stop\", \"svg\", \"switch\", \"symbol\", \"text\", \"tspan\", \"use\", \"view\"];\nexport { lowercaseSVGElements };","import { lowercaseSVGElements } from '../../svg/lowercase-elements.js';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n } else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n\n return false;\n}\n\nexport { isSVGComponent };","var valueScaleCorrection = {};\n/**\n * @internal\n */\n\nfunction addScaleCorrection(correctors) {\n for (var key in correctors) {\n valueScaleCorrection[key] = correctors[key];\n }\n}\n\nexport { addScaleCorrection, valueScaleCorrection };","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\n\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\n\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n return transformAxes.forEach(function (axesKey) {\n return transformProps.push(operationKey + axesKey);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\n\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\n\n\nvar transformPropSet = new Set(transformProps);\n\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\n\n\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\n\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };","import { valueScaleCorrection } from '../../render/dom/projection/scale-correction.js';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.js';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout,\n layoutId = _a.layoutId;\n return isTransformProp(key) || isTransformOriginProp(key) || (layout || layoutId !== undefined) && (!!valueScaleCorrection[key] || key === \"opacity\");\n}\n\nexport { isForcedMotionValue };","var isMotionValue = function isMotionValue(value) {\n return value !== null && typeof value === \"object\" && value.getVelocity;\n};\n\nexport { isMotionValue };","import { sortTransformProps } from './transform.js';\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\"\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\n\nfunction buildTransform(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform,\n transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration,\n enableHardwareAcceleration = _c === void 0 ? true : _c,\n _d = _b.allowTransformNone,\n allowTransformNone = _d === void 0 ? true : _d; // The transform string we're going to build into.\n\n var transformString = \"\"; // Transform keys into their default order - this will determine the output order.\n\n transformKeys.sort(sortTransformProps); // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n\n var transformHasZ = false; // Loop over each transform and build them into transformString\n\n var numTransformKeys = transformKeys.length;\n\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += (translateAlias[key] || key) + \"(\" + transform[key] + \") \";\n if (key === \"z\") transformHasZ = true;\n }\n\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n } else {\n transformString = transformString.trim();\n } // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n\n\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n } else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n\n\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX,\n originX = _b === void 0 ? \"50%\" : _b,\n _c = _a.originY,\n originY = _c === void 0 ? \"50%\" : _c,\n _d = _a.originZ,\n originZ = _d === void 0 ? 0 : _d;\n return originX + \" \" + originY + \" \" + originZ;\n}\n\nexport { buildTransform, buildTransformOrigin };","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function getValueAsType(value, type) {\n return type && typeof value === \"number\" ? type.transform(value) : value;\n};\n\nexport { getValueAsType };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","var clamp = function clamp(min, max) {\n return function (v) {\n return Math.max(Math.min(v, max), min);\n };\n};\n\nvar sanitize = function sanitize(v) {\n return v % 1 ? Number(v.toFixed(5)) : v;\n};\n\nvar floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nvar colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nvar singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\n\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };","import { __assign } from 'tslib';\nimport { isString } from '../utils.js';\n\nvar createUnitType = function createUnitType(unit) {\n return {\n test: function test(v) {\n return isString(v) && v.endsWith(unit) && v.split(' ').length === 1;\n },\n parse: parseFloat,\n transform: function transform(v) {\n return \"\" + v + unit;\n }\n };\n};\n\nvar degrees = createUnitType('deg');\nvar percent = createUnitType('%');\nvar px = createUnitType('px');\nvar vh = createUnitType('vh');\nvar vw = createUnitType('vw');\n\nvar progressPercentage = __assign(__assign({}, percent), {\n parse: function parse(v) {\n return percent.parse(v) / 100;\n },\n transform: function transform(v) {\n return percent.transform(v * 100);\n }\n});\n\nexport { degrees, percent, progressPercentage, px, vh, vw };","import { __assign } from 'tslib';\nimport { clamp } from '../utils.js';\nvar number = {\n test: function test(v) {\n return typeof v === 'number';\n },\n parse: parseFloat,\n transform: function transform(v) {\n return v;\n }\n};\n\nvar alpha = __assign(__assign({}, number), {\n transform: clamp(0, 1)\n});\n\nvar scale = __assign(__assign({}, number), {\n default: 1\n});\n\nexport { alpha, number, scale };","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), {\n transform: Math.round\n});\n\nexport { int };","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.js';\nvar numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale: scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int\n};\nexport { numberValueTypes };","import { valueScaleCorrection } from '../../dom/projection/scale-correction.js';\nimport { buildTransform, buildTransformOrigin } from './build-transform.js';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.js';\nimport { isTransformProp, isTransformOriginProp } from './transform.js';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.js';\nimport { numberValueTypes } from '../../dom/value-types/number.js';\n\nfunction buildHTMLStyles(state, latestValues, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin) {\n var _a;\n\n var style = state.style,\n vars = state.vars,\n transform = state.transform,\n transformKeys = state.transformKeys,\n transformOrigin = state.transformOrigin; // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n\n transformKeys.length = 0; // Track whether we encounter any transform or transformOrigin values.\n\n var hasTransform = false;\n var hasTransformOrigin = false; // Does the calculated transform essentially equal \"none\"?\n\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n\n for (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n } // Convert the value to its default value type, ie 0 -> \"0px\"\n\n\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key); // If we already know we have a non-default transform, early return\n\n if (!transformIsNone) continue; // Otherwise check to see if this is a default transform\n\n if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0)) transformIsNone = false;\n } else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType; // If this is a transform origin, flag and enable further transform-origin processing\n\n hasTransformOrigin = true;\n } else {\n /**\n * If layout projection is on, and we need to perform scale correction for this\n * value type, perform it.\n */\n if ((projection === null || projection === void 0 ? void 0 : projection.isHydrated) && (layoutState === null || layoutState === void 0 ? void 0 : layoutState.isHydrated) && valueScaleCorrection[key]) {\n var correctedValue = valueScaleCorrection[key].process(value, layoutState, projection);\n /**\n * Scale-correctable values can define a number of other values to break\n * down into. For instance borderRadius needs applying to borderBottomLeftRadius etc\n */\n\n var applyTo = valueScaleCorrection[key].applyTo;\n\n if (applyTo) {\n var num = applyTo.length;\n\n for (var i = 0; i < num; i++) {\n style[applyTo[i]] = correctedValue;\n }\n } else {\n style[key] = correctedValue;\n }\n } else {\n style[key] = valueAsType;\n }\n }\n }\n\n if (layoutState && projection && buildProjectionTransform && buildProjectionTransformOrigin) {\n style.transform = buildProjectionTransform(layoutState.deltaFinal, layoutState.treeScale, hasTransform ? transform : undefined);\n\n if (transformTemplate) {\n style.transform = transformTemplate(transform, style.transform);\n }\n\n style.transformOrigin = buildProjectionTransformOrigin(layoutState);\n } else {\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n }\n}\n\nexport { buildHTMLStyles };","var createHtmlRenderState = function createHtmlRenderState() {\n return {\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {}\n };\n};\n\nexport { createHtmlRenderState };","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.js';\nimport { isMotionValue } from '../../value/utils/is-motion-value.js';\nimport { buildHTMLStyles } from './utils/build-styles.js';\nimport { createHtmlRenderState } from './utils/create-render-state.js';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\n\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, undefined, undefined, {\n enableHardwareAcceleration: !isStatic\n }, transformTemplate);\n var vars = state.vars,\n style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\n\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n\n if (props.transformValues) {\n style = props.transformValues(style);\n }\n\n return style;\n}\n\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n\n if (Boolean(props.drag)) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false; // Disable text selection\n\n style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = \"none\"; // Disable scrolling on the draggable direction\n\n style.touchAction = props.drag === true ? \"none\" : \"pan-\" + (props.drag === \"x\" ? \"y\" : \"x\");\n }\n\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };","/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\"initial\", \"animate\", \"exit\", \"style\", \"variants\", \"transition\", \"transformTemplate\", \"transformValues\", \"custom\", \"inherit\", \"layout\", \"layoutId\", \"_layoutResetTransform\", \"onLayoutAnimationComplete\", \"onViewportBoxUpdate\", \"onLayoutMeasure\", \"onBeforeLayoutMeasure\", \"onAnimationStart\", \"onAnimationComplete\", \"onUpdate\", \"onDragStart\", \"onDrag\", \"onDragEnd\", \"onMeasureDragConstraints\", \"onDirectionLock\", \"onDragTransitionEnd\", \"drag\", \"dragControls\", \"dragListener\", \"dragConstraints\", \"dragDirectionLock\", \"_dragX\", \"_dragY\", \"dragElastic\", \"dragMomentum\", \"dragPropagation\", \"dragTransition\", \"whileDrag\", \"onPan\", \"onPanStart\", \"onPanEnd\", \"onPanSessionStart\", \"onTap\", \"onTapStart\", \"onTapCancel\", \"onHoverStart\", \"onHoverEnd\", \"whileFocus\", \"whileTap\", \"whileHover\"]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\n\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };","import { isValidMotionProp } from '../../../motion/utils/valid-prop.js';\n\nvar shouldForward = function shouldForward(key) {\n return !isValidMotionProp(key);\n};\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\n\n\ntry {\n var emotionIsPropValid_1 = require(\"@emotion/is-prop-valid\").default;\n\n shouldForward = function shouldForward(key) {\n // Handle events explicitly as Emotion validates them all as true\n if (key.startsWith(\"on\")) {\n return !isValidMotionProp(key);\n } else {\n return emotionIsPropValid_1(key);\n }\n };\n} catch (_a) {// We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\n\nfunction filterProps(props, isDom, forwardMotionProps) {\n var filteredProps = {};\n\n for (var key in props) {\n if (shouldForward(key) || forwardMotionProps === true && isValidMotionProp(key) || !isDom && !isValidMotionProp(key)) {\n filteredProps[key] = props[key];\n }\n }\n\n return filteredProps;\n}\n\nexport { filterProps };","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\" ? origin : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\n\n\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return pxOriginX + \" \" + pxOriginY;\n}\n\nexport { calcSVGTransformOrigin };","import { px } from 'style-value-types'; // Convert a progress 0-1 to a pixels value based on the provided length\n\nvar progressToPixels = function progressToPixels(progress, length) {\n return px.transform(progress * length);\n};\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\"\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\"\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\n\nfunction buildSVGPath(attrs, totalLength, length, spacing, offset, useDashCase) {\n if (spacing === void 0) {\n spacing = 1;\n }\n\n if (offset === void 0) {\n offset = 0;\n }\n\n if (useDashCase === void 0) {\n useDashCase = true;\n } // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n\n\n var keys = useDashCase ? dashKeys : camelKeys; // Build the dash offset\n\n attrs[keys.offset] = progressToPixels(-offset, totalLength); // Build the dash array\n\n var pathLength = progressToPixels(length, totalLength);\n var pathSpacing = progressToPixels(spacing, totalLength);\n attrs[keys.array] = pathLength + \" \" + pathSpacing;\n}\n\nexport { buildSVGPath };","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.js';\nimport { calcSVGTransformOrigin } from './transform-origin.js';\nimport { buildSVGPath } from './path.js';\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\n\nfunction buildSVGAttrs(state, _a, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin) {\n var attrX = _a.attrX,\n attrY = _a.attrY,\n originX = _a.originX,\n originY = _a.originY,\n pathLength = _a.pathLength,\n _b = _a.pathSpacing,\n pathSpacing = _b === void 0 ? 1 : _b,\n _c = _a.pathOffset,\n pathOffset = _c === void 0 ? 0 : _c,\n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n\n buildHTMLStyles(state, latest, projection, layoutState, options, transformTemplate, buildProjectionTransform, buildProjectionTransformOrigin);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs,\n style = state.style,\n dimensions = state.dimensions,\n totalPathLength = state.totalPathLength;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n\n if (attrs.transform) {\n if (dimensions) style.transform = attrs.transform;\n delete attrs.transform;\n } // Parse transformOrigin\n\n\n if (dimensions && (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n } // Treat x/y not as shortcuts but as actual attributes\n\n\n if (attrX !== undefined) attrs.x = attrX;\n if (attrY !== undefined) attrs.y = attrY; // Build SVG path if one has been measured\n\n if (totalPathLength !== undefined && pathLength !== undefined) {\n buildSVGPath(attrs, totalPathLength, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.js';\n\nvar createSvgRenderState = function createSvgRenderState() {\n return __assign(__assign({}, createHtmlRenderState()), {\n attrs: {}\n });\n};\n\nexport { createSvgRenderState };","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.js';\nimport { buildSVGAttrs } from './utils/build-attrs.js';\nimport { createSvgRenderState } from './utils/create-render-state.js';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, undefined, undefined, {\n enableHardwareAcceleration: false\n }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), {\n style: __assign({}, state.style)\n });\n }, [visualState]);\n\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n\n return visualProps;\n}\n\nexport { useSVGProps };","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.js';\nimport { filterProps } from './utils/filter-props.js';\nimport { isSVGComponent } from './utils/is-svg-component.js';\nimport { useSVGProps } from '../svg/use-props.js';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) {\n forwardMotionProps = false;\n }\n\n var useRender = function useRender(Component, props, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component) ? useSVGProps : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), {\n ref: ref\n });\n\n return createElement(Component, elementProps);\n };\n\n return useRender;\n}\n\nexport { createUseRender };","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\n\nvar camelToDash = function camelToDash(str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };","function renderHTML(element, _a) {\n var style = _a.style,\n vars = _a.vars; // Directly assign style into the Element's style prop. In tests Object.assign is the\n // fastest way to assign styles.\n\n Object.assign(element.style, style); // Loop over any CSS variables and assign those.\n\n for (var key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };","/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\"baseFrequency\", \"diffuseConstant\", \"kernelMatrix\", \"kernelUnitLength\", \"keySplines\", \"keyTimes\", \"limitingConeAngle\", \"markerHeight\", \"markerWidth\", \"numOctaves\", \"targetX\", \"targetY\", \"surfaceScale\", \"specularConstant\", \"specularExponent\", \"stdDeviation\", \"tableValues\", \"viewBox\", \"gradientTransform\"]);\nexport { camelCaseAttributes };","import { camelToDash } from '../../dom/utils/camel-to-dash.js';\nimport { renderHTML } from '../../html/utils/render.js';\nimport { camelCaseAttributes } from './camel-case-attrs.js';\n\nfunction renderSVG(element, renderState) {\n renderHTML(element, renderState);\n\n for (var key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.js';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.js';\n\nfunction scrapeMotionValuesFromProps(props) {\n var style = props.style;\n var newValues = {};\n\n for (var key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };","import { isMotionValue } from '../../../value/utils/is-motion-value.js';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.js';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };","var isKeyframesTarget = function isKeyframesTarget(v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };","import { isCustomValue } from '../../utils/resolve-value.js';\nimport { isMotionValue } from './is-motion-value.js';\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n *\n * @internal\n */\n\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue) ? unwrappedValue.toValue() : unwrappedValue;\n}\n\nexport { resolveMotionValue };","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.js';\n\nvar isCustomValue = function isCustomValue(v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\n\nvar resolveFinalValueInKeyframes = function resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.js';\nimport { useConstant } from '../../utils/use-constant.js';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.js';\nimport { MotionContext } from '../../context/MotionContext/index.js';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps,\n createRenderState = _a.createRenderState,\n onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState()\n };\n\n if (onMount) {\n state.mount = function (instance) {\n return onMount(props, instance, state);\n };\n }\n\n return state;\n}\n\nvar makeUseVisualState = function makeUseVisualState(config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic ? makeState(config, props, context, presenceContext) : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\n\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n\n var initial = props.initial,\n animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n\n if (context && isVariantNode && !isControllingVariants && props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : initial = context.initial;\n animate !== null && animate !== void 0 ? animate : animate = context.animate;\n }\n\n var variantToSet = blockInitialAnimation || initial === false ? animate : initial;\n\n if (variantToSet && typeof variantToSet !== \"boolean\" && !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved) return;\n var transitionEnd = resolved.transitionEnd;\n resolved.transition;\n\n var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n\n for (var key in target) {\n values[key] = target[key];\n }\n\n for (var key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n });\n }\n\n return values;\n}\n\nexport { makeUseVisualState };","import { renderSVG } from './utils/render.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.js';\nimport { createSvgRenderState } from './utils/create-render-state.js';\nimport { buildSVGAttrs } from './utils/build-attrs.js';\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function onMount(props, instance, _a) {\n var renderState = _a.renderState,\n latestValues = _a.latestValues;\n\n try {\n renderState.dimensions = typeof instance.getBBox === \"function\" ? instance.getBBox() : instance.getBoundingClientRect();\n } catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (isPath(instance)) {\n renderState.totalPathLength = instance.getTotalLength();\n }\n\n buildSVGAttrs(renderState, latestValues, undefined, undefined, {\n enableHardwareAcceleration: false\n }, props.transformTemplate); // TODO: Replace with direct assignment\n\n renderSVG(instance, renderState);\n }\n })\n};\n\nfunction isPath(element) {\n return element.tagName === \"path\";\n}\n\nexport { svgMotionConfig };","import { makeUseVisualState } from '../../motion/utils/use-visual-state.js';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.js';\nimport { createHtmlRenderState } from './utils/create-render-state.js';\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState\n })\n};\nexport { htmlMotionConfig };","var AnimationType;\n\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () {\n return target.removeEventListener(eventName, handler, options);\n };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\n\n\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n\n return event instanceof MouseEvent;\n}\n\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };","import { isTouchEvent } from '../gestures/utils/event-type.js';\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\n\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent || isMouseEvent && event.button === 0;\n\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\n\nvar defaultPagePoint = {\n pageX: 0,\n pageY: 0\n};\n\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"]\n };\n}\n\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"]\n };\n}\n\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) {\n pointType = \"page\";\n }\n\n return {\n point: isTouchEvent(event) ? pointFromTouch(event, pointType) : pointFromMouse(event, pointType)\n };\n}\n\nfunction getViewportPointFromEvent(event) {\n return extractEventInfo(event, \"client\");\n}\n\nvar wrapHandler = function wrapHandler(handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) {\n shouldFilterPrimaryPointer = false;\n }\n\n var listener = function listener(event) {\n return handler(event, extractEventInfo(event));\n };\n\n return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener;\n};\n\nexport { extractEventInfo, getViewportPointFromEvent, wrapHandler };","import { useDomEvent, addDomEvent } from './use-dom-event.js';\nimport { wrapHandler } from './event-info.js';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.js';\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\"\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\"\n};\n\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n } else if (supportsTouchEvents()) {\n return touchEventNames[name];\n } else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n\n return name;\n}\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };","import { isBrowser } from '../utils/is-browser.js'; // We check for event support via functions in case they've been mocked by a testing suite.\n\nvar supportsPointerEvents = function supportsPointerEvents() {\n return isBrowser && window.onpointerdown === null;\n};\n\nvar supportsTouchEvents = function supportsTouchEvents() {\n return isBrowser && window.ontouchstart === null;\n};\n\nvar supportsMouseEvents = function supportsMouseEvents() {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function openLock() {\n lock = null;\n };\n\n if (lock === null) {\n lock = name;\n return openLock;\n }\n\n return false;\n };\n}\n\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\n\nfunction getGlobalLock(drag) {\n var lock = false;\n\n if (drag === \"y\") {\n lock = globalVerticalLock();\n } else if (drag === \"x\") {\n lock = globalHorizontalLock();\n } else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n\n if (openHorizontal_1 && openVertical_1) {\n lock = function lock() {\n openHorizontal_1();\n openVertical_1();\n };\n } else {\n // Release the locks because we don't use them\n if (openHorizontal_1) openHorizontal_1();\n if (openVertical_1) openVertical_1();\n }\n }\n\n return lock;\n}\n\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n var openGestureLock = getGlobalLock(true);\n if (!openGestureLock) return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };","import { isMouseEvent } from './utils/event-type.js';\nimport { AnimationType } from '../render/utils/types.js';\nimport { usePointerEvent } from '../events/use-pointer-event.js';\nimport { isDragActive } from './drag/utils/lock.js';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n\n if (!isMouseEvent(event) || isDragActive()) return;\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n };\n}\n\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart,\n onHoverEnd = _a.onHoverEnd,\n whileHover = _a.whileHover,\n visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover ? createHoverEvent(visualElement, true, onHoverStart) : undefined);\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover ? createHoverEvent(visualElement, false, onHoverEnd) : undefined);\n}\n\nexport { useHoverGesture };","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function isNodeOrChild(parent, child) {\n if (!child) {\n return false;\n } else if (parent === child) {\n return true;\n } else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };","var combineFunctions = function combineFunctions(a, b) {\n return function (v) {\n return b(a(v));\n };\n};\n\nvar pipe = function pipe() {\n var transformers = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n transformers[_i] = arguments[_i];\n }\n\n return transformers.reduce(combineFunctions);\n};\n\nexport { pipe };","var makeRenderlessComponent = function makeRenderlessComponent(hook) {\n return function (props) {\n hook(props);\n return null;\n };\n};\n\nexport { makeRenderlessComponent };","import { useFocusGesture } from '../../gestures/use-focus-gesture.js';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.js';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.js';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.js';\nvar gestureAnimations = {\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture)\n};\nexport { gestureAnimations };","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.js';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.js';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.js';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.js';\nimport { isDragActive } from './drag/utils/lock.js';\n/**\n * @param handlers -\n * @internal\n */\n\nfunction useTapGesture(_a) {\n var onTap = _a.onTap,\n onTapStart = _a.onTapStart,\n onTapCancel = _a.onTapCancel,\n whileTap = _a.whileTap,\n visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n\n function removePointerEndListener() {\n var _a;\n\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n\n function checkPointerEnd() {\n var _a;\n\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n\n function onPointerUp(event, info) {\n if (!checkPointerEnd()) return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n\n !isNodeOrChild(visualElement.getInstance(), event.target) ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info) : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n\n function onPointerCancel(event, info) {\n if (!checkPointerEnd()) return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n\n function onPointerDown(event, info) {\n var _a;\n\n removePointerEndListener();\n if (isPressing.current) return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp), addPointerEvent(window, \"pointercancel\", onPointerCancel));\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n }\n\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };","import { AnimationType } from '../render/utils/types.js';\nimport { useDomEvent } from '../events/use-dom-event.js';\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\n\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus,\n visualElement = _a.visualElement;\n\n var onFocus = function onFocus() {\n var _a;\n\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n\n var onBlur = function onBlur() {\n var _a;\n\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };","function shallowCompare(next, prev) {\n if (!Array.isArray(prev)) return false;\n var prevLength = prev.length;\n if (prevLength !== next.length) return false;\n\n for (var i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i]) return false;\n }\n\n return true;\n}\n\nexport { shallowCompare };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","var clamp = function clamp(min, max, v) {\n return Math.min(Math.max(v, min), max);\n};\n\nexport { clamp };","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.js';\nvar safeMin = 0.001;\nvar minDuration = 0.01;\nvar maxDuration = 10.0;\nvar minDamping = 0.05;\nvar maxDamping = 1;\n\nfunction findSpring(_a) {\n var _b = _a.duration,\n duration = _b === void 0 ? 800 : _b,\n _c = _a.bounce,\n bounce = _c === void 0 ? 0.25 : _c,\n _d = _a.velocity,\n velocity = _d === void 0 ? 0 : _d,\n _e = _a.mass,\n mass = _e === void 0 ? 1 : _e;\n var envelope;\n var derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n var dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n\n if (dampingRatio < 1) {\n envelope = function envelope(undampedFreq) {\n var exponentialDecay = undampedFreq * dampingRatio;\n var delta = exponentialDecay * duration;\n var a = exponentialDecay - velocity;\n var b = calcAngularFreq(undampedFreq, dampingRatio);\n var c = Math.exp(-delta);\n return safeMin - a / b * c;\n };\n\n derivative = function derivative(undampedFreq) {\n var exponentialDecay = undampedFreq * dampingRatio;\n var delta = exponentialDecay * duration;\n var d = delta * velocity + velocity;\n var e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n var f = Math.exp(-delta);\n var g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n var factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return factor * ((d - e) * f) / g;\n };\n } else {\n envelope = function envelope(undampedFreq) {\n var a = Math.exp(-undampedFreq * duration);\n var b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n\n derivative = function derivative(undampedFreq) {\n var a = Math.exp(-undampedFreq * duration);\n var b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n\n var initialGuess = 5 / duration;\n var undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration: duration\n };\n } else {\n var stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness: stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration: duration\n };\n }\n}\n\nvar rootIterations = 12;\n\nfunction approximateRoot(envelope, derivative, initialGuess) {\n var result = initialGuess;\n\n for (var i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n\n return result;\n}\n\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };","import { __rest, __assign } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.js';\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\n\nfunction isSpringType(options, keys) {\n return keys.some(function (key) {\n return options[key] !== undefined;\n });\n}\n\nfunction getSpringOptions(options) {\n var springOptions = __assign({\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false\n }, options);\n\n if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n var derived = findSpring(options);\n springOptions = __assign(__assign(__assign({}, springOptions), derived), {\n velocity: 0.0,\n mass: 1.0\n });\n springOptions.isResolvedFromDuration = true;\n }\n\n return springOptions;\n}\n\nfunction spring(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0.0 : _b,\n _c = _a.to,\n to = _c === void 0 ? 1.0 : _c,\n _d = _a.restSpeed,\n restSpeed = _d === void 0 ? 2 : _d,\n restDelta = _a.restDelta,\n options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n\n var state = {\n done: false,\n value: from\n };\n\n var _e = getSpringOptions(options),\n stiffness = _e.stiffness,\n damping = _e.damping,\n mass = _e.mass,\n velocity = _e.velocity,\n duration = _e.duration,\n isResolvedFromDuration = _e.isResolvedFromDuration;\n\n var resolveSpring = zero;\n var resolveVelocity = zero;\n\n function createSpring() {\n var initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n var initialDelta = to - from;\n var dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n var undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n restDelta !== null && restDelta !== void 0 ? restDelta : restDelta = Math.abs(to - from) <= 1 ? 0.01 : 0.4;\n\n if (dampingRatio < 1) {\n var angularFreq_1 = calcAngularFreq(undampedAngularFreq, dampingRatio);\n\n resolveSpring = function resolveSpring(t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 * Math.sin(angularFreq_1 * t) + initialDelta * Math.cos(angularFreq_1 * t));\n };\n\n resolveVelocity = function resolveVelocity(t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return dampingRatio * undampedAngularFreq * envelope * (Math.sin(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 + initialDelta * Math.cos(angularFreq_1 * t)) - envelope * (Math.cos(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) - angularFreq_1 * initialDelta * Math.sin(angularFreq_1 * t));\n };\n } else if (dampingRatio === 1) {\n resolveSpring = function resolveSpring(t) {\n return to - Math.exp(-undampedAngularFreq * t) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t);\n };\n } else {\n var dampedAngularFreq_1 = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n\n resolveSpring = function resolveSpring(t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n var freqForT = Math.min(dampedAngularFreq_1 * t, 300);\n return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq_1 * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq_1;\n };\n }\n }\n\n createSpring();\n return {\n next: function next(t) {\n var current = resolveSpring(t);\n\n if (!isResolvedFromDuration) {\n var currentVelocity = resolveVelocity(t) * 1000;\n var isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n var isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n } else {\n state.done = t >= duration;\n }\n\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: function flipTarget() {\n var _a;\n\n velocity = -velocity;\n _a = [to, from], from = _a[0], to = _a[1];\n createSpring();\n }\n };\n}\n\nspring.needsInterpolation = function (a, b) {\n return typeof a === \"string\" || typeof b === \"string\";\n};\n\nvar zero = function zero(_t) {\n return 0;\n};\n\nexport { spring };","var progress = function progress(from, to, value) {\n var toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };","var mix = function mix(from, to, progress) {\n return -progress * from + progress * to + from;\n};\n\nexport { mix };","import { isString, singleColorRegex, floatRegex } from '../utils.js';\n\nvar isColorString = function isColorString(type, testProp) {\n return function (v) {\n return Boolean(isString(v) && singleColorRegex.test(v) && v.startsWith(type) || testProp && Object.prototype.hasOwnProperty.call(v, testProp));\n };\n};\n\nvar splitColor = function splitColor(aName, bName, cName) {\n return function (v) {\n var _a;\n\n if (!isString(v)) return v;\n\n var _b = v.match(floatRegex),\n a = _b[0],\n b = _b[1],\n c = _b[2],\n alpha = _b[3];\n\n return _a = {}, _a[aName] = parseFloat(a), _a[bName] = parseFloat(b), _a[cName] = parseFloat(c), _a.alpha = alpha !== undefined ? parseFloat(alpha) : 1, _a;\n };\n};\n\nexport { isColorString, splitColor };","import { __assign } from 'tslib';\nimport { number, alpha } from '../numbers/index.js';\nimport { sanitize, clamp } from '../utils.js';\nimport { isColorString, splitColor } from './utils.js';\nvar clampRgbUnit = clamp(0, 255);\n\nvar rgbUnit = __assign(__assign({}, number), {\n transform: function transform(v) {\n return Math.round(clampRgbUnit(v));\n }\n});\n\nvar rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: function transform(_a) {\n var red = _a.red,\n green = _a.green,\n blue = _a.blue,\n _b = _a.alpha,\n alpha$1 = _b === void 0 ? 1 : _b;\n return 'rgba(' + rgbUnit.transform(red) + ', ' + rgbUnit.transform(green) + ', ' + rgbUnit.transform(blue) + ', ' + sanitize(alpha.transform(alpha$1)) + ')';\n }\n};\nexport { rgbUnit, rgba };","import { rgba } from './rgba.js';\nimport { isColorString } from './utils.js';\n\nfunction parseHex(v) {\n var r = '';\n var g = '';\n var b = '';\n var a = '';\n\n if (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n } else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1\n };\n}\n\nvar hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform\n};\nexport { hex };","import { alpha } from '../numbers/index.js';\nimport { percent } from '../numbers/units.js';\nimport { sanitize } from '../utils.js';\nimport { isColorString, splitColor } from './utils.js';\nvar hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: function transform(_a) {\n var hue = _a.hue,\n saturation = _a.saturation,\n lightness = _a.lightness,\n _b = _a.alpha,\n alpha$1 = _b === void 0 ? 1 : _b;\n return 'hsla(' + Math.round(hue) + ', ' + percent.transform(sanitize(saturation)) + ', ' + percent.transform(sanitize(lightness)) + ', ' + sanitize(alpha.transform(alpha$1)) + ')';\n }\n};\nexport { hsla };","import { __assign } from 'tslib';\nimport { mix } from './mix.js';\nimport { hex, rgba, hsla } from 'style-value-types';\nimport { invariant } from 'hey-listen';\n\nvar mixLinearColor = function mixLinearColor(from, to, v) {\n var fromExpo = from * from;\n var toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\n\nvar colorTypes = [hex, rgba, hsla];\n\nvar getColorType = function getColorType(v) {\n return colorTypes.find(function (type) {\n return type.test(v);\n });\n};\n\nvar notAnimatable = function notAnimatable(color) {\n return \"'\" + color + \"' is not an animatable color. Use the equivalent color code instead.\";\n};\n\nvar mixColor = function mixColor(from, to) {\n var fromColorType = getColorType(from);\n var toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n invariant(fromColorType.transform === toColorType.transform, \"Both colors must be hex/RGBA, OR both must be HSLA.\");\n var fromColor = fromColorType.parse(from);\n var toColor = toColorType.parse(to);\n\n var blended = __assign({}, fromColor);\n\n var mixFunc = fromColorType === hsla ? mix : mixLinearColor;\n return function (v) {\n for (var key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixFunc(fromColor[key], toColor[key], v);\n }\n }\n\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };","import { isString } from '../utils.js';\nimport { hex } from './hex.js';\nimport { hsla } from './hsla.js';\nimport { rgba } from './rgba.js';\nvar color = {\n test: function test(v) {\n return rgba.test(v) || hex.test(v) || hsla.test(v);\n },\n parse: function parse(v) {\n if (rgba.test(v)) {\n return rgba.parse(v);\n } else if (hsla.test(v)) {\n return hsla.parse(v);\n } else {\n return hex.parse(v);\n }\n },\n transform: function transform(v) {\n return isString(v) ? v : v.hasOwnProperty('red') ? rgba.transform(v) : hsla.transform(v);\n }\n};\nexport { color };","import { color } from '../color/index.js';\nimport { number } from '../numbers/index.js';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.js';\nvar colorToken = '${c}';\nvar numberToken = '${n}';\n\nfunction test(v) {\n var _a, _b, _c, _d;\n\n return isNaN(v) && isString(v) && ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0;\n}\n\nfunction analyse(v) {\n var values = [];\n var numColors = 0;\n var colors = v.match(colorRegex);\n\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push.apply(values, colors.map(color.parse));\n }\n\n var numbers = v.match(floatRegex);\n\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push.apply(values, numbers.map(number.parse));\n }\n\n return {\n values: values,\n numColors: numColors,\n tokenised: v\n };\n}\n\nfunction parse(v) {\n return analyse(v).values;\n}\n\nfunction createTransformer(v) {\n var _a = analyse(v),\n values = _a.values,\n numColors = _a.numColors,\n tokenised = _a.tokenised;\n\n var numValues = values.length;\n return function (v) {\n var output = tokenised;\n\n for (var i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n\n return output;\n };\n}\n\nvar convertNumbersToZero = function convertNumbersToZero(v) {\n return typeof v === 'number' ? 0 : v;\n};\n\nfunction getAnimatableNone(v) {\n var parsed = parse(v);\n var transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\n\nvar complex = {\n test: test,\n parse: parse,\n createTransformer: createTransformer,\n getAnimatableNone: getAnimatableNone\n};\nexport { complex };","var zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\n\nvar isNum = function isNum(v) {\n return typeof v === 'number';\n};\n\nexport { isNum, zeroPoint };","import { __spreadArray, __assign } from 'tslib';\nimport { complex, color } from 'style-value-types';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { isNum } from './inc.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return function (v) {\n return mix(origin, target, v);\n };\n } else if (color.test(origin)) {\n return mixColor(origin, target);\n } else {\n return mixComplex(origin, target);\n }\n}\n\nvar mixArray = function mixArray(from, to) {\n var output = __spreadArray([], from);\n\n var numValues = output.length;\n var blendValue = from.map(function (fromThis, i) {\n return getMixer(fromThis, to[i]);\n });\n return function (v) {\n for (var i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n\n return output;\n };\n};\n\nvar mixObject = function mixObject(origin, target) {\n var output = __assign(__assign({}, origin), target);\n\n var blendValue = {};\n\n for (var key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n\n return function (v) {\n for (var key in blendValue) {\n output[key] = blendValue[key](v);\n }\n\n return output;\n };\n};\n\nfunction analyse(value) {\n var parsed = complex.parse(value);\n var numValues = parsed.length;\n var numNumbers = 0;\n var numRGB = 0;\n var numHSL = 0;\n\n for (var i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n } else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n } else {\n numRGB++;\n }\n }\n }\n\n return {\n parsed: parsed,\n numNumbers: numNumbers,\n numRGB: numRGB,\n numHSL: numHSL\n };\n}\n\nvar mixComplex = function mixComplex(origin, target) {\n var template = complex.createTransformer(target);\n var originStats = analyse(origin);\n var targetStats = analyse(target);\n invariant(originStats.numHSL === targetStats.numHSL && originStats.numRGB === targetStats.numRGB && originStats.numNumbers >= targetStats.numNumbers, \"Complex values '\" + origin + \"' and '\" + target + \"' too different to mix. Ensure all colors are of the same type.\");\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n};\n\nexport { mixArray, mixComplex, mixObject };","import { progress } from './progress.js';\nimport { mix } from './mix.js';\nimport { mixColor } from './mix-color.js';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.js';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.js';\nimport { pipe } from './pipe.js';\nimport { invariant } from 'hey-listen';\n\nvar mixNumber = function mixNumber(from, to) {\n return function (p) {\n return mix(from, to, p);\n };\n};\n\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n } else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n } else {\n return mixComplex;\n }\n } else if (Array.isArray(v)) {\n return mixArray;\n } else if (typeof v === 'object') {\n return mixObject;\n }\n}\n\nfunction createMixers(output, ease, customMixer) {\n var mixers = [];\n var mixerFactory = customMixer || detectMixerFactory(output[0]);\n var numMixers = output.length - 1;\n\n for (var i = 0; i < numMixers; i++) {\n var mixer = mixerFactory(output[i], output[i + 1]);\n\n if (ease) {\n var easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n\n mixers.push(mixer);\n }\n\n return mixers;\n}\n\nfunction fastInterpolate(_a, _b) {\n var from = _a[0],\n to = _a[1];\n var mixer = _b[0];\n return function (v) {\n return mixer(progress(from, to, v));\n };\n}\n\nfunction slowInterpolate(input, mixers) {\n var inputLength = input.length;\n var lastInputIndex = inputLength - 1;\n return function (v) {\n var mixerIndex = 0;\n var foundMixerIndex = false;\n\n if (v <= input[0]) {\n foundMixerIndex = true;\n } else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n\n if (!foundMixerIndex) {\n var i = 1;\n\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n\n mixerIndex = i - 1;\n }\n\n var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\n\nfunction interpolate(input, output, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.clamp,\n isClamp = _c === void 0 ? true : _c,\n ease = _b.ease,\n mixer = _b.mixer;\n\n var inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n\n var mixers = createMixers(output, ease, mixer);\n var interpolator = inputLength === 2 ? fastInterpolate(input, mixers) : slowInterpolate(input, mixers);\n return isClamp ? function (v) {\n return interpolator(clamp(input[0], input[inputLength - 1], v));\n } : interpolator;\n}\n\nexport { interpolate };","var reverseEasing = function reverseEasing(easing) {\n return function (p) {\n return 1 - easing(1 - p);\n };\n};\n\nvar mirrorEasing = function mirrorEasing(easing) {\n return function (p) {\n return p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n };\n};\n\nvar createExpoIn = function createExpoIn(power) {\n return function (p) {\n return Math.pow(p, power);\n };\n};\n\nvar createBackIn = function createBackIn(power) {\n return function (p) {\n return p * p * ((power + 1) * p - power);\n };\n};\n\nvar createAnticipate = function createAnticipate(power) {\n var backEasing = createBackIn(power);\n return function (p) {\n return (p *= 2) < 1 ? 0.5 * backEasing(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n };\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.js';\nvar DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nvar BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nvar BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nvar BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\n\nvar linear = function linear(p) {\n return p;\n};\n\nvar easeIn = createExpoIn(2);\nvar easeOut = reverseEasing(easeIn);\nvar easeInOut = mirrorEasing(easeIn);\n\nvar circIn = function circIn(p) {\n return 1 - Math.sin(Math.acos(p));\n};\n\nvar circOut = reverseEasing(circIn);\nvar circInOut = mirrorEasing(circOut);\nvar backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nvar backOut = reverseEasing(backIn);\nvar backInOut = mirrorEasing(backIn);\nvar anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nvar ca = 4356.0 / 361.0;\nvar cb = 35442.0 / 1805.0;\nvar cc = 16061.0 / 1805.0;\n\nvar bounceOut = function bounceOut(p) {\n if (p === 1 || p === 0) return p;\n var p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD ? 7.5625 * p2 : p < BOUNCE_SECOND_THRESHOLD ? 9.075 * p2 - 9.9 * p + 3.4 : p < BOUNCE_THIRD_THRESHOLD ? ca * p2 - cb * p + cc : 10.8 * p * p - 20.52 * p + 10.72;\n};\n\nvar bounceIn = reverseEasing(bounceOut);\n\nvar bounceInOut = function bounceInOut(p) {\n return p < 0.5 ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0)) : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n};\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };","import { interpolate } from '../../utils/interpolate.js';\nimport { easeInOut } from '../../easing/index.js';\n\nfunction defaultEasing(values, easing) {\n return values.map(function () {\n return easing || easeInOut;\n }).splice(0, values.length - 1);\n}\n\nfunction defaultOffset(values) {\n var numValues = values.length;\n return values.map(function (_value, i) {\n return i !== 0 ? i / (numValues - 1) : 0;\n });\n}\n\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map(function (o) {\n return o * duration;\n });\n}\n\nfunction keyframes(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0 : _b,\n _c = _a.to,\n to = _c === void 0 ? 1 : _c,\n ease = _a.ease,\n offset = _a.offset,\n _d = _a.duration,\n duration = _d === void 0 ? 300 : _d;\n var state = {\n done: false,\n value: from\n };\n var values = Array.isArray(to) ? to : [from, to];\n var times = convertOffsetToTimes(offset && offset.length === values.length ? offset : defaultOffset(values), duration);\n\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease)\n });\n }\n\n var interpolator = createInterpolator();\n return {\n next: function next(t) {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: function flipTarget() {\n values.reverse();\n interpolator = createInterpolator();\n }\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };","import { spring } from '../generators/spring.js';\nimport { keyframes } from '../generators/keyframes.js';\nimport { decay } from '../generators/decay.js';\nvar types = {\n keyframes: keyframes,\n spring: spring,\n decay: decay\n};\n\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n } else if (types[config.type]) {\n return types[config.type];\n }\n\n var keys = new Set(Object.keys(config));\n\n if (keys.has(\"ease\") || keys.has(\"duration\") && !keys.has(\"dampingRatio\")) {\n return keyframes;\n } else if (keys.has(\"dampingRatio\") || keys.has(\"stiffness\") || keys.has(\"mass\") || keys.has(\"damping\") || keys.has(\"restSpeed\") || keys.has(\"restDelta\")) {\n return spring;\n }\n\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };","function decay(_a) {\n var _b = _a.velocity,\n velocity = _b === void 0 ? 0 : _b,\n _c = _a.from,\n from = _c === void 0 ? 0 : _c,\n _d = _a.power,\n power = _d === void 0 ? 0.8 : _d,\n _e = _a.timeConstant,\n timeConstant = _e === void 0 ? 350 : _e,\n _f = _a.restDelta,\n restDelta = _f === void 0 ? 0.5 : _f,\n modifyTarget = _a.modifyTarget;\n var state = {\n done: false,\n value: from\n };\n var amplitude = power * velocity;\n var ideal = from + amplitude;\n var target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal) amplitude = target - from;\n return {\n next: function next(t) {\n var delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: function flipTarget() {}\n };\n}\n\nexport { decay };","function loopElapsed(elapsed, duration, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return elapsed - duration - delay;\n}\n\nfunction reverseElapsed(elapsed, duration, delay, isForwardPlayback) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (isForwardPlayback === void 0) {\n isForwardPlayback = true;\n }\n\n return isForwardPlayback ? loopElapsed(duration + -elapsed, duration, delay) : duration - (elapsed - duration) + delay;\n}\n\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };","import { __rest, __assign } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.js';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.js';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.js';\n\nvar framesync = function framesync(update) {\n var passTimestamp = function passTimestamp(_a) {\n var delta = _a.delta;\n return update(delta);\n };\n\n return {\n start: function start() {\n return sync.update(passTimestamp, true);\n },\n stop: function stop() {\n return cancelSync.update(passTimestamp);\n }\n };\n};\n\nfunction animate(_a) {\n var _b, _c;\n\n var from = _a.from,\n _d = _a.autoplay,\n autoplay = _d === void 0 ? true : _d,\n _e = _a.driver,\n driver = _e === void 0 ? framesync : _e,\n _f = _a.elapsed,\n elapsed = _f === void 0 ? 0 : _f,\n _g = _a.repeat,\n repeatMax = _g === void 0 ? 0 : _g,\n _h = _a.repeatType,\n repeatType = _h === void 0 ? \"loop\" : _h,\n _j = _a.repeatDelay,\n repeatDelay = _j === void 0 ? 0 : _j,\n onPlay = _a.onPlay,\n onStop = _a.onStop,\n onComplete = _a.onComplete,\n onRepeat = _a.onRepeat,\n onUpdate = _a.onUpdate,\n options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n\n var to = options.to;\n var driverControls;\n var repeatCount = 0;\n var computedDuration = options.duration;\n var latest;\n var isComplete = false;\n var isForwardPlayback = true;\n var interpolateFromNumber;\n var animator = detectAnimationFromOptions(options);\n\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false\n });\n from = 0;\n to = 100;\n }\n\n var animation = animator(__assign(__assign({}, options), {\n from: from,\n to: to\n }));\n\n function repeat() {\n repeatCount++;\n\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n } else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\") animation.flipTarget();\n }\n\n isComplete = false;\n onRepeat && onRepeat();\n }\n\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n\n function update(delta) {\n if (!isForwardPlayback) delta = -delta;\n elapsed += delta;\n\n if (!isComplete) {\n var state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber) latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n\n if (isComplete) {\n if (repeatCount === 0) computedDuration !== null && computedDuration !== void 0 ? computedDuration : computedDuration = elapsed;\n\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n } else {\n complete();\n }\n }\n }\n\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n\n autoplay && play();\n return {\n stop: function stop() {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n }\n };\n}\n\nexport { animate };","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function secondsToMilliseconds(seconds) {\n return seconds * 1000;\n};\n\nexport { secondsToMilliseconds };","import { linear } from './index.js';\n\nvar a = function a(a1, a2) {\n return 1.0 - 3.0 * a2 + 3.0 * a1;\n};\n\nvar b = function b(a1, a2) {\n return 3.0 * a2 - 6.0 * a1;\n};\n\nvar c = function c(a1) {\n return 3.0 * a1;\n};\n\nvar calcBezier = function calcBezier(t, a1, a2) {\n return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\n\nvar getSlope = function getSlope(t, a1, a2) {\n return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\n\nvar subdivisionPrecision = 0.0000001;\nvar subdivisionMaxIterations = 10;\n\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX;\n var currentT;\n var i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);\n\n return currentT;\n}\n\nvar newtonIterations = 8;\nvar newtonMinSlope = 0.001;\n\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < newtonIterations; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2) return linear;\n var sampleValues = new Float32Array(kSplineTableSize);\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function (t) {\n return t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n };\n}\n\nexport { cubicBezier };","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut\n};\n\nvar easingDefinitionToFunction = function easingDefinitionToFunction(definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n\n var _a = __read(definition, 4),\n x1 = _a[0],\n y1 = _a[1],\n x2 = _a[2],\n y2 = _a[3];\n\n return cubicBezier(x1, y1, x2, y2);\n } else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\" + definition + \"'\");\n return easingLookup[definition];\n }\n\n return definition;\n};\n\nvar isEasingArray = function isEasingArray(ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };","import { complex } from 'style-value-types';\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\n\nvar isAnimatable = function isAnimatable(key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\") return false; // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n\n if (typeof value === \"number\" || Array.isArray(value)) return true;\n\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n\n return false;\n};\n\nexport { isAnimatable };","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.js';\n\nvar underDampedSpring = function underDampedSpring() {\n return {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restDelta: 0.5,\n restSpeed: 10\n };\n};\n\nvar criticallyDampedSpring = function criticallyDampedSpring(to) {\n return {\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restDelta: 0.01,\n restSpeed: 10\n };\n};\n\nvar linearTween = function linearTween() {\n return {\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3\n };\n};\n\nvar keyframes = function keyframes(values) {\n return {\n type: \"keyframes\",\n duration: 0.8,\n values: values\n };\n};\n\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring\n};\n\nvar getDefaultTransition = function getDefaultTransition(valueKey, to) {\n var transitionFactory;\n\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n } else {\n transitionFactory = defaultTransitions[valueKey] || defaultTransitions.default;\n }\n\n return __assign({\n to: to\n }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };","import { __assign } from 'tslib';\nimport { complex } from './index.js';\nimport { floatRegex } from '../utils.js';\nvar maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\n\nfunction applyDefaultFilter(v) {\n var _a = v.slice(0, -1).split('('),\n name = _a[0],\n value = _a[1];\n\n if (name === 'drop-shadow') return v;\n var number = (value.match(floatRegex) || [])[0];\n if (!number) return v;\n var unit = value.replace(number, '');\n var defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value) defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\n\nvar functionRegex = /([a-z-]*)\\(.*?\\)/g;\n\nvar filter = __assign(__assign({}, complex), {\n getAnimatableNone: function getAnimatableNone(v) {\n var functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n }\n});\n\nexport { filter };","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.js';\n/**\n * A map of default value types for common values\n */\n\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), {\n // Color props\n color: color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter: filter,\n WebkitFilter: filter\n});\n/**\n * Gets the default ValueType for the provided value key\n */\n\n\nvar getDefaultValueType = function getDefaultValueType(key) {\n return defaultValueTypes[key];\n};\n\nexport { defaultValueTypes, getDefaultValueType };","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.js';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter) defaultValueType = complex; // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.js';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.js';\nimport { isAnimatable } from './is-animatable.js';\nimport { getDefaultTransition } from './default-transitions.js';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.js';\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\n\nfunction isTransitionDefined(_a) {\n _a.when;\n _a.delay;\n _a.delayChildren;\n _a.staggerChildren;\n _a.staggerDirection;\n _a.repeat;\n _a.repeatType;\n _a.repeatDelay;\n _a.from;\n\n var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n\n return !!Object.keys(transition).length;\n}\n\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\n\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease,\n times = _a.times,\n yoyo = _a.yoyo,\n flip = _a.flip,\n loop = _a.loop,\n transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n\n var options = __assign({}, transition);\n\n if (times) options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n\n if (transition.duration) options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay) options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n\n if (ease) {\n options[\"ease\"] = isEasingArray(ease) ? ease.map(easingDefinitionToFunction) : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n\n\n if (transition.type === \"tween\") options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n\n if (yoyo) {\n options.repeatType = \"reverse\";\n } else if (loop) {\n options.repeatType = \"loop\";\n } else if (flip) {\n options.repeatType = \"mirror\";\n }\n\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n\n\n if (transition.type !== \"spring\") options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\n\n\nfunction getDelayFromTransition(transition, key) {\n var _a;\n\n var valueTransition = getValueTransition(transition, key) || {};\n return (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : 0;\n}\n\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to));\n options.to[0] = options.from;\n }\n\n return options;\n}\n\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : transition.duration = 0.8;\n }\n\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\n\n\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n } else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n } else if (!Array.isArray(target) && isZero(target) && typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \" + key + \" from \\\"\" + origin + \"\\\" to \\\"\" + target + \"\\\". \" + origin + \" is not an animatable value - to enable this animation set \" + origin + \" to a value animatable to \" + target + \" via the `style` property.\");\n\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function onUpdate(v) {\n return value.set(v);\n }\n };\n return valueTransition.type === \"inertia\" || valueTransition.type === \"decay\" ? inertia(__assign(__assign({}, options), valueTransition)) : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), {\n onUpdate: function onUpdate(v) {\n var _a;\n\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n },\n onComplete: function onComplete() {\n var _a;\n\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n }\n }));\n }\n\n function set() {\n var _a;\n\n value.set(target);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n return {\n stop: function stop() {}\n };\n }\n\n return !isOriginAnimatable || !isTargetAnimatable || valueTransition.type === false ? set : start;\n}\n\nfunction isZero(value) {\n return value === 0 || typeof value === \"string\" && parseFloat(value) === 0 && value.indexOf(\" \") === -1;\n}\n\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\" ? 0 : getAnimatableNone(\"\", potentialUnitType);\n}\n\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\n\n\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) {\n transition = {};\n }\n\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n\n var start = function start() {\n return controls = animation();\n };\n\n if (delay) {\n delayTimer = setTimeout(start, secondsToMilliseconds(delay));\n } else {\n start();\n }\n\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };","import { __assign } from 'tslib';\nimport { animate } from './index.js';\nimport { velocityPerSecond } from '../utils/velocity-per-second.js';\nimport { getFrameData } from 'framesync';\n\nfunction inertia(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0 : _b,\n _c = _a.velocity,\n velocity = _c === void 0 ? 0 : _c,\n min = _a.min,\n max = _a.max,\n _d = _a.power,\n power = _d === void 0 ? 0.8 : _d,\n _e = _a.timeConstant,\n timeConstant = _e === void 0 ? 750 : _e,\n _f = _a.bounceStiffness,\n bounceStiffness = _f === void 0 ? 500 : _f,\n _g = _a.bounceDamping,\n bounceDamping = _g === void 0 ? 10 : _g,\n _h = _a.restDelta,\n restDelta = _h === void 0 ? 1 : _h,\n modifyTarget = _a.modifyTarget,\n driver = _a.driver,\n _onUpdate = _a.onUpdate,\n onComplete = _a.onComplete;\n var currentAnimation;\n\n function isOutOfBounds(v) {\n return min !== undefined && v < min || max !== undefined && v > max;\n }\n\n function boundaryNearest(v) {\n if (min === undefined) return max;\n if (max === undefined) return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(__assign(__assign({}, options), {\n driver: driver,\n onUpdate: function onUpdate(v) {\n var _a;\n\n _onUpdate === null || _onUpdate === void 0 ? void 0 : _onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n },\n onComplete: onComplete\n }));\n }\n\n function startSpring(options) {\n startAnimation(__assign({\n type: \"spring\",\n stiffness: bounceStiffness,\n damping: bounceDamping,\n restDelta: restDelta\n }, options));\n }\n\n if (isOutOfBounds(from)) {\n startSpring({\n from: from,\n velocity: velocity,\n to: boundaryNearest(from)\n });\n } else {\n var target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\") target = modifyTarget(target);\n var boundary_1 = boundaryNearest(target);\n var heading_1 = boundary_1 === min ? -1 : 1;\n var prev_1;\n var current_1;\n\n var checkBoundary = function checkBoundary(v) {\n prev_1 = current_1;\n current_1 = v;\n velocity = velocityPerSecond(v - prev_1, getFrameData().delta);\n\n if (heading_1 === 1 && v > boundary_1 || heading_1 === -1 && v < boundary_1) {\n startSpring({\n from: v,\n to: boundary_1,\n velocity: velocity\n });\n }\n };\n\n startAnimation({\n type: \"decay\",\n from: from,\n velocity: velocity,\n timeConstant: timeConstant,\n power: power,\n restDelta: restDelta,\n modifyTarget: modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined\n });\n }\n\n return {\n stop: function stop() {\n return currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n }\n };\n}\n\nexport { inertia };","function addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\n\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };","import { addUniqueItem, removeItem } from './array.js';\n\nvar SubscriptionManager = function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n\n addUniqueItem(this.subscriptions, handler);\n return function () {\n return removeItem(_this.subscriptions, handler);\n };\n };\n\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions) return;\n\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n } else {\n for (var i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n\n return SubscriptionManager;\n}();\n\nexport { SubscriptionManager };","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.js';\n\nvar isFloat = function isFloat(value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\n\n\nvar MotionValue = function () {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n function MotionValue(init) {\n var _this = this;\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n\n\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n\n this.canTrackVelocity = false;\n\n this.updateAndNotify = function (v, render) {\n if (render === void 0) {\n render = true;\n }\n\n _this.prev = _this.current;\n _this.current = v; // Update timestamp\n\n var _a = getFrameData(),\n delta = _a.delta,\n timestamp = _a.timestamp;\n\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n } // Update update subscribers\n\n\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n } // Update velocity subscribers\n\n\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n } // Update render subscribers\n\n\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n\n\n this.scheduleVelocityCheck = function () {\n return sync.postRender(_this.velocityCheck);\n };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n\n\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * @library\n *\n * ```jsx\n * function MyComponent() {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @motion\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @internalremarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @public\n */\n\n\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n\n\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n\n\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\n };\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n\n\n MotionValue.prototype.set = function (v, render) {\n if (render === void 0) {\n render = true;\n }\n\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n } else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n\n\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n\n\n MotionValue.prototype.getPrevious = function () {\n return this.prev;\n };\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n\n\n MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) - parseFloat(this.prev), this.timeDelta) : 0;\n };\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n\n\n MotionValue.prototype.start = function (animation) {\n var _this = this;\n\n this.stop();\n return new Promise(function (resolve) {\n _this.hasAnimated = true;\n _this.stopAnimation = animation(resolve);\n }).then(function () {\n return _this.clearAnimation();\n });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n\n\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation) this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n\n\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\n };\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n\n\n MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n\n return MotionValue;\n}();\n/**\n * @internal\n */\n\n\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function testValueType(v) {\n return function (type) {\n return type.test(v);\n };\n};\n\nexport { testValueType };","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.js';\nimport { auto } from './type-auto.js';\n/**\n * A list of value types commonly used for dimensions\n */\n\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\n\nvar findDimensionValueType = function findDimensionValueType(v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function test(v) {\n return v === \"auto\";\n },\n parse: function parse(v) {\n return v;\n }\n};\nexport { auto };","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.js';\nimport { testValueType } from './test.js';\n/**\n * A list of all ValueTypes\n */\n\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes)), [color, complex]);\n/**\n * Tests a value against the list of ValueTypes\n */\n\n\nvar findValueType = function findValueType(v) {\n return valueTypes.find(testValueType(v));\n};\n\nexport { findValueType };","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.js';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.js';\nimport { motionValue } from '../../value/index.js';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.js';\nimport { findValueType } from '../dom/value-types/find.js';\nimport { resolveVariant } from './variants.js';\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\n\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n } else {\n visualElement.addValue(key, motionValue(value));\n }\n}\n\nfunction setTarget(visualElement, definition) {\n var resolved = resolveVariant(visualElement, definition);\n\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {},\n _b = _a.transitionEnd,\n transitionEnd = _b === void 0 ? {} : _b;\n\n _a.transition;\n\n var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n\n target = __assign(__assign({}, target), transitionEnd);\n\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels)).reverse();\n\n reversedLabels.forEach(function (key) {\n var _a;\n\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\n\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n } else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n } else {\n setTarget(visualElement, definition);\n }\n}\n\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b, _c;\n\n var _d;\n\n var newValueKeys = Object.keys(target).filter(function (key) {\n return !visualElement.hasValue(key);\n });\n var numNewValues = newValueKeys.length;\n if (!numNewValues) return;\n\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n\n\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n\n\n if (value === undefined || value === null) continue;\n\n if (typeof value === \"string\" && isNumericalString(value)) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n } else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n\n visualElement.addValue(key, motionValue(value));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : _d[key] = value;\n visualElement.setBaseTarget(key, value);\n }\n}\n\nfunction getOriginFromTransition(key, transition) {\n if (!transition) return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\n\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n\n var origin = {};\n\n for (var key in target) {\n origin[key] = (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.js';\nimport { setTarget } from './setters.js';\nimport { resolveVariant } from './variants.js';\n/**\n * @internal\n */\n\nfunction animateVisualElement(visualElement, definition, options) {\n if (options === void 0) {\n options = {};\n }\n\n visualElement.notifyAnimationStart();\n var animation;\n\n if (Array.isArray(definition)) {\n var animations = definition.map(function (variant) {\n return animateVariant(visualElement, variant, options);\n });\n animation = Promise.all(animations);\n } else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n } else {\n var resolvedDefinition = typeof definition === \"function\" ? resolveVariant(visualElement, definition, options.custom) : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n\n return animation.then(function () {\n return visualElement.notifyAnimationComplete(definition);\n });\n}\n\nfunction animateVariant(visualElement, variant, options) {\n var _a;\n\n if (options === void 0) {\n options = {};\n }\n\n var resolved = resolveVariant(visualElement, variant, options.custom);\n var _b = (resolved || {}).transition,\n transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\n\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n\n\n var getAnimation = resolved ? function () {\n return animateTarget(visualElement, resolved, options);\n } : function () {\n return Promise.resolve();\n };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n\n var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size) ? function (forwardDelay) {\n if (forwardDelay === void 0) {\n forwardDelay = 0;\n }\n\n var _a = transition.delayChildren,\n delayChildren = _a === void 0 ? 0 : _a,\n staggerChildren = transition.staggerChildren,\n staggerDirection = transition.staggerDirection;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n } : function () {\n return Promise.resolve();\n };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n\n var when = transition.when;\n\n if (when) {\n var _c = __read(when === \"beforeChildren\" ? [getAnimation, getChildAnimations] : [getChildAnimations, getAnimation], 2),\n first = _c[0],\n last = _c[1];\n\n return first().then(last);\n } else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\n\n\nfunction animateTarget(visualElement, definition, _a) {\n var _b;\n\n var _c = _a === void 0 ? {} : _a,\n _d = _c.delay,\n delay = _d === void 0 ? 0 : _d,\n transitionOverride = _c.transitionOverride,\n type = _c.type;\n\n var _e = visualElement.makeTargetAnimatable(definition),\n _f = _e.transition,\n transition = _f === void 0 ? visualElement.getDefaultTransition() : _f,\n transitionEnd = _e.transitionEnd,\n target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n\n if (transitionOverride) transition = transitionOverride;\n var animations = [];\n var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n\n for (var key in target) {\n var value = visualElement.getValue(key);\n var valueTarget = target[key];\n\n if (!value || valueTarget === undefined || animationTypeState && shouldBlockAnimation(animationTypeState, key)) {\n continue;\n }\n\n var animation = startAnimation(key, value, valueTarget, __assign({\n delay: delay\n }, transition));\n animations.push(animation);\n }\n\n return Promise.all(animations).then(function () {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\n\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n if (delayChildren === void 0) {\n delayChildren = 0;\n }\n\n if (staggerChildren === void 0) {\n staggerChildren = 0;\n }\n\n if (staggerDirection === void 0) {\n staggerDirection = 1;\n }\n\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1 ? function (i) {\n if (i === void 0) {\n i = 0;\n }\n\n return i * staggerChildren;\n } : function (i) {\n if (i === void 0) {\n i = 0;\n }\n\n return maxStaggerDuration - i * staggerChildren;\n };\n Array.from(visualElement.variantChildren).sort(sortByTreeOrder).forEach(function (child, i) {\n animations.push(animateVariant(child, variant, __assign(__assign({}, options), {\n delay: delayChildren + generateStaggerDuration(i)\n })).then(function () {\n return child.notifyAnimationComplete(variant);\n }));\n });\n return Promise.all(animations);\n}\n\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) {\n return value.stop();\n });\n}\n\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\n\n\nfunction shouldBlockAnimation(_a, key) {\n var protectedKeys = _a.protectedKeys,\n needsAnimating = _a.needsAnimating;\n var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.js';\nimport { shallowCompare } from '../../utils/shallow-compare.js';\nimport { animateVisualElement } from './animation.js';\nimport { AnimationType } from './types.js';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.js';\nvar variantPriorityOrder = [AnimationType.Animate, AnimationType.Hover, AnimationType.Tap, AnimationType.Drag, AnimationType.Focus, AnimationType.Exit];\n\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder)).reverse();\n\nvar numAnimationTypes = variantPriorityOrder.length;\n\nfunction animateList(visualElement) {\n return function (animations) {\n return Promise.all(animations.map(function (_a) {\n var animation = _a.animation,\n options = _a.options;\n return animateVisualElement(visualElement, animation, options);\n }));\n };\n}\n\nfunction createAnimationState(visualElement) {\n var animate = animateList(visualElement);\n var state = createState();\n var allAnimatedKeys = {};\n var isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n\n var buildResolvedTypeValues = function buildResolvedTypeValues(acc, definition) {\n var resolved = resolveVariant(visualElement, definition);\n\n if (resolved) {\n resolved.transition;\n\n var transitionEnd = resolved.transitionEnd,\n target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n\n acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n }\n\n return acc;\n };\n\n function isAnimated(key) {\n return allAnimatedKeys[key] !== undefined;\n }\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n\n\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n\n\n function animateChanges(options, changedActiveType) {\n var _a;\n\n var props = visualElement.getProps();\n var context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n\n var animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n\n var removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n\n var encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n\n var removedVariantIndex = Infinity;\n\n var _loop_1 = function _loop_1(i) {\n var type = reversePriorityOrder[i];\n var typeState = state[type];\n var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n var propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n\n var activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false) removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n\n var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n\n if (isInherited && isInitialRender && visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n\n\n typeState.protectedKeys = __assign({}, encounteredKeys); // Check if we can skip analysing this prop early\n\n if ( // If it isn't active and hasn't *just* been set as inactive\n !typeState.isActive && activeDelta === null || !prop && !typeState.prevProp || // Or if the prop doesn't define an animation\n isAnimationControls(prop) || typeof prop === \"boolean\") {\n return \"continue\";\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n\n\n var shouldAnimateType = variantsHaveChanged(typeState.prevProp, prop) || type === changedActiveType && typeState.isActive && !isInherited && propIsVariant || i > removedVariantIndex && propIsVariant;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n\n var definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n\n var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false) resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n\n var _b = typeState.prevResolvedValues,\n prevResolvedValues = _b === void 0 ? {} : _b;\n\n var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n\n var markToAnimate = function markToAnimate(key) {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n\n for (var key in allKeys) {\n var next = resolvedValues[key];\n var prev = prevResolvedValues[key]; // If we've already handled this we can just skip ahead\n\n if (encounteredKeys.hasOwnProperty(key)) continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev)) {\n markToAnimate(key);\n } else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n } else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n } else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n } else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n } else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n\n\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n\n if (typeState.isActive) {\n encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);\n }\n\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n\n\n if (shouldAnimateType && !isInherited) {\n animations.push.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) {\n return {\n animation: animation,\n options: __assign({\n type: type\n }, options)\n };\n }))));\n }\n };\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n\n\n for (var i = 0; i < numAnimationTypes; i++) {\n _loop_1(i);\n }\n\n allAnimatedKeys = __assign({}, encounteredKeys);\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n\n if (removedKeys.size) {\n var fallbackAnimation_1 = {};\n removedKeys.forEach(function (key) {\n var fallbackTarget = visualElement.getBaseTarget(key);\n\n if (fallbackTarget !== undefined) {\n fallbackAnimation_1[key] = fallbackTarget;\n }\n });\n animations.push({\n animation: fallbackAnimation_1\n });\n }\n\n var shouldAnimate = Boolean(animations.length);\n\n if (isInitialRender && props.initial === false && !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n\n\n function setActive(type, isActive, options) {\n var _a; // If the active state hasn't changed, we can safely do nothing here\n\n\n if (state[type].isActive === isActive) return Promise.resolve(); // Propagate active change to children\n\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n var _a;\n\n return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive);\n });\n state[type].isActive = isActive;\n return animateChanges(options, type);\n }\n\n return {\n isAnimated: isAnimated,\n animateChanges: animateChanges,\n setActive: setActive,\n setAnimateFunction: setAnimateFunction,\n getState: function getState() {\n return state;\n }\n };\n}\n\nfunction variantsHaveChanged(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n } else if (isVariantLabels(next)) {\n return !shallowCompare(next, prev);\n }\n\n return false;\n}\n\nfunction createTypeState(isActive) {\n if (isActive === void 0) {\n isActive = false;\n }\n\n return {\n isActive: isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {}\n };\n}\n\nfunction createState() {\n var _a;\n\n return _a = {}, _a[AnimationType.Animate] = createTypeState(true), _a[AnimationType.Hover] = createTypeState(), _a[AnimationType.Tap] = createTypeState(), _a[AnimationType.Drag] = createTypeState(), _a[AnimationType.Focus] = createTypeState(), _a[AnimationType.Exit] = createTypeState(), _a;\n}\n\nexport { createAnimationState, variantPriorityOrder, variantsHaveChanged };","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.js';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.js';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { createAnimationState } from '../../render/utils/animation-state.js';\nimport { AnimationType } from '../../render/utils/types.js';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.js';\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement,\n animate = _a.animate;\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n\n if (isAnimationControls(animate)) {\n useEffect(function () {\n return animate.subscribe(visualElement);\n }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom,\n visualElement = props.visualElement;\n\n var _a = __read(usePresence(), 2),\n isPresent = _a[0],\n onExitComplete = _a[1];\n\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, {\n custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom\n });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(onExitComplete));\n }, [isPresent]);\n })\n};\nexport { animations };","var isPoint = function isPoint(point) {\n return point.hasOwnProperty('x') && point.hasOwnProperty('y');\n};\n\nexport { isPoint };","import { isPoint } from './is-point.js';\n\nvar isPoint3D = function isPoint3D(point) {\n return isPoint(point) && point.hasOwnProperty('z');\n};\n\nexport { isPoint3D };","import { isPoint } from './is-point.js';\nimport { isPoint3D } from './is-point-3d.js';\nimport { isNum } from './inc.js';\n\nvar distance1D = function distance1D(a, b) {\n return Math.abs(a - b);\n};\n\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n } else if (isPoint(a) && isPoint(b)) {\n var xDelta = distance1D(a.x, b.x);\n var yDelta = distance1D(a.y, b.y);\n var zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.js';\nimport { extractEventInfo } from '../events/event-info.js';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.js';\nimport { addPointerEvent } from '../events/use-pointer-event.js';\nimport { distance, pipe } from 'popmotion';\n/**\n * @internal\n */\n\nvar PanSession = function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n\n var _b = _a === void 0 ? {} : _a,\n transformPagePoint = _b.transformPagePoint;\n /**\n * @internal\n */\n\n\n this.startEvent = null;\n /**\n * @internal\n */\n\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n\n this.handlers = {};\n\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo)) return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null; // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n\n var isDistancePastThreshold = distance(info.offset, {\n x: 0,\n y: 0\n }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold) return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n\n _this.history.push(__assign(__assign({}, point), {\n timestamp: timestamp\n }));\n\n var _a = _this.handlers,\n onStart = _a.onStart,\n onMove = _a.onMove;\n\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n\n onMove && onMove(_this.lastMoveEvent, info);\n };\n\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint); // Because Safari doesn't trigger mouseup events when it's above a `