{"version":3,"file":"static/js/main.7e5a80fa.js","mappings":"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","sources":["../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-simple-typewriter/node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-simple-typewriter/src/Components/Cursor.tsx","../node_modules/react-simple-typewriter/src/reducer.tsx","../node_modules/react-simple-typewriter/src/Hooks/useTypewriter.tsx","../node_modules/react-simple-typewriter/src/Components/Typewriter.tsx","../node_modules/react-social-icons/build/_networks-db.js","../node_modules/react-social-icons/build/background.js","../node_modules/react-social-icons/build/icon.js","../node_modules/react-social-icons/build/mask.js","../node_modules/react-social-icons/build/networks.js","../node_modules/react-social-icons/build/react-social-icons.js","../node_modules/react-social-icons/build/social-icon.js","../node_modules/react-social-icons/build/styles.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../public/content/images|sync|/^/.*$","assets/img|sync|/^/.*$","../webpack/bootstrap","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/style-value-types/dist/es/utils.mjs","../node_modules/style-value-types/dist/es/numbers/units.mjs","../node_modules/style-value-types/dist/es/numbers/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/utils/types.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../node_modules/framer-motion/dist/es/events/utils.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/popmotion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/warn-once.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/tslib/tslib.es6.js","../node_modules/popmotion/dist/es/utils/clamp.mjs","../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../node_modules/popmotion/dist/es/utils/progress.mjs","../node_modules/popmotion/dist/es/utils/mix.mjs","../node_modules/style-value-types/dist/es/color/utils.mjs","../node_modules/style-value-types/dist/es/color/rgba.mjs","../node_modules/style-value-types/dist/es/color/hex.mjs","../node_modules/style-value-types/dist/es/color/hsla.mjs","../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/popmotion/dist/es/utils/mix-color.mjs","../node_modules/style-value-types/dist/es/color/index.mjs","../node_modules/style-value-types/dist/es/complex/index.mjs","../node_modules/popmotion/dist/es/utils/inc.mjs","../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../node_modules/popmotion/dist/es/utils/interpolate.mjs","../node_modules/popmotion/dist/es/easing/utils.mjs","../node_modules/popmotion/dist/es/easing/index.mjs","../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framesync/dist/es/index.mjs","../node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../node_modules/popmotion/dist/es/animations/index.mjs","../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/style-value-types/dist/es/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/popmotion/dist/es/animations/inertia.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/popmotion/dist/es/utils/is-point.mjs","../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../node_modules/popmotion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","components/About.tsx","../node_modules/@heroicons/react/24/solid/esm/ChatBubbleLeftIcon.js","../node_modules/@heroicons/react/24/solid/esm/EnvelopeIcon.js","../node_modules/@heroicons/react/24/solid/esm/MapPinIcon.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/fillEmptyArray.ts","../node_modules/react-hook-form/src/utils/getValidationModes.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","../node_modules/react-google-recaptcha-v3/src/utils.ts","../node_modules/react-google-recaptcha-v3/src/google-recaptcha-provider.tsx","../node_modules/react-google-recaptcha-v3/src/use-google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/src/google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/index.js","../node_modules/react-google-recaptcha-v3/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","components/ContactMe.tsx","components/Header.tsx","components/BackgroundCircles.tsx","assets/img/logo.svg","components/Hero.tsx","assets/img/right-arrow.svg","assets/img/left-arrow.svg","components/Projects.tsx","components/Skill.tsx","components/Skills.tsx","components/ExperienceCard.tsx","components/WorkExperience.tsx","pages/App.tsx","reportWebVitals.ts","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","i18n.ts","../node_modules/@remix-run/router/history.ts","auth/AuthProvider.tsx","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","pages/Login.tsx","auth/GuardedRoute.tsx","context/projects-context.tsx","pages/AdminPage.tsx","pages/CreateEditProject.tsx","components/AdminLayout.tsx","index.tsx"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 {\r\n return (\r\n \r\n {cursorStyle}\r\n \r\n )\r\n}\r\n","export type State = {\r\n speed: number\r\n text: string\r\n isDeleting: boolean\r\n count: number\r\n}\r\n\r\nexport type Action =\r\n | { type: 'SPEED'; payload: number }\r\n | { type: 'TYPE'; payload: string; speed: number }\r\n | { type: 'DELETE'; payload: string; speed: number }\r\n | { type: 'COUNT' }\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n switch (action.type) {\r\n case 'SPEED':\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n speed: action.payload\r\n }\r\n case 'TYPE':\r\n return {\r\n ...state,\r\n speed: action.speed,\r\n text: action.payload?.substring(0, state.text.length + 1)\r\n }\r\n case 'DELETE':\r\n return {\r\n ...state,\r\n speed: action.speed,\r\n text: action.payload?.substring(0, state.text.length - 1)\r\n }\r\n case 'COUNT':\r\n return {\r\n ...state,\r\n isDeleting: false,\r\n count: state.count + 1\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { useCallback, useEffect, useRef, useReducer } from 'react'\r\nimport { reducer } from '../reducer'\r\n\r\nexport interface TypewriterProps {\r\n /** Callback Function that is triggered when loops are completed. available if loop is > 0 */\r\n onLoopDone?: () => void\r\n /** Callback Function that is runs while typing */\r\n onType?: (counter: number) => void\r\n /** Array of strings holding the words */\r\n words: string[]\r\n /** Control how many times to run. `0 | false` to run infinitely */\r\n loop?: number | boolean\r\n /** Character typing speed in Milliseconds */\r\n typeSpeed?: number\r\n /** Character deleting speed in Milliseconds */\r\n deleteSpeed?: number\r\n /** Delay time between the words in Milliseconds */\r\n delaySpeed?: number\r\n}\r\n\r\nexport const useTypewriter = ({\r\n words = ['Hello World!', 'This is', 'a simple Typewriter'],\r\n loop = 1,\r\n typeSpeed = 80,\r\n deleteSpeed = 50,\r\n delaySpeed = 1500,\r\n onLoopDone,\r\n onType\r\n}: TypewriterProps): (string | number)[] => {\r\n const [{ isDeleting, speed, text, count }, dispatch] = useReducer(reducer, {\r\n isDeleting: false,\r\n speed: typeSpeed,\r\n text: '',\r\n count: 0\r\n })\r\n\r\n // Refs\r\n const loops = useRef(0)\r\n const isDone = useRef(false)\r\n\r\n const handleTyping = useCallback(() => {\r\n const index = count % words.length\r\n const fullWord = words[index]\r\n\r\n if (!isDeleting) {\r\n dispatch({ type: 'TYPE', payload: fullWord, speed: typeSpeed })\r\n\r\n if (onType) onType(count)\r\n\r\n if (text === fullWord) {\r\n dispatch({ type: 'SPEED', payload: delaySpeed })\r\n\r\n if (loop > 0) {\r\n loops.current += 1\r\n if (loops.current / words.length === loop) isDone.current = true\r\n }\r\n }\r\n } else {\r\n dispatch({ type: 'DELETE', payload: fullWord, speed: deleteSpeed })\r\n\r\n if (text === '') dispatch({ type: 'COUNT' })\r\n }\r\n }, [\r\n isDeleting,\r\n count,\r\n delaySpeed,\r\n deleteSpeed,\r\n loop,\r\n typeSpeed,\r\n words,\r\n text,\r\n onType\r\n ])\r\n\r\n useEffect(() => {\r\n const typing = setTimeout(handleTyping, speed)\r\n\r\n if (isDone.current) {\r\n clearTimeout(typing)\r\n if (onLoopDone) onLoopDone()\r\n }\r\n\r\n return () => clearTimeout(typing)\r\n }, [handleTyping, speed, onLoopDone])\r\n\r\n return [text, count + 1]\r\n}\r\n","import { Cursor } from './Cursor'\r\nimport { TypewriterProps, useTypewriter } from '../Hooks/useTypewriter'\r\n\r\ninterface ComponentProps extends TypewriterProps {\r\n /** Show / Hide the cursor */\r\n cursor?: boolean\r\n /** Change the cursor style available if cursor is enabled */\r\n cursorStyle?: string\r\n /** Change the cursor Color */\r\n cursorColor?: string\r\n}\r\n/**\r\n * A Simple React Component for adding a nice Typewriter effect to your project.\r\n */\r\nexport const Typewriter = ({\r\n words = ['Hello World!', 'This is', 'a simple Typewriter'],\r\n loop = 1,\r\n typeSpeed = 80,\r\n deleteSpeed = 50,\r\n delaySpeed = 1500,\r\n cursor = false,\r\n cursorStyle = '|',\r\n cursorColor = 'inherit',\r\n onLoopDone,\r\n onType\r\n}: ComponentProps): JSX.Element => {\r\n const [text] = useTypewriter({\r\n words,\r\n loop,\r\n typeSpeed,\r\n deleteSpeed,\r\n delaySpeed,\r\n onLoopDone,\r\n onType\r\n })\r\n\r\n return (\r\n <>\r\n {text}\r\n {cursor && }\r\n \r\n )\r\n}\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*eslint sort-keys: [\"error\", \"asc\", {\"minKeys\":4}]*/\n\n/**\n * Special case for email icon to avoid duplicated code. Both e-mail and mailto share\n * the same icon. This allows existing users to use 'email' as a icon, while enabling\n * the exisitng logic to use the email icon when \"mailto:\" is present in the url.\n */\nvar EMAIL_ICON = {\n icon: 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',\n mask: 'M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z',\n color: '#7f7f7f'\n};\nvar telegram = {\n icon: 'M 11.886719 33.476562 C 15.617188 31.421875 19.78125 29.707031 23.671875 27.980469 C 30.367188 25.15625 37.085938 22.382812 43.875 19.800781 C 45.199219 19.359375 47.570312 18.929688 47.804688 20.886719 C 47.675781 23.660156 47.152344 26.414062 46.792969 29.167969 C 45.878906 35.222656 44.824219 41.261719 43.796875 47.300781 C 43.441406 49.308594 40.921875 50.351562 39.308594 49.0625 C 35.4375 46.449219 31.53125 43.855469 27.710938 41.179688 C 26.457031 39.90625 27.617188 38.078125 28.738281 37.167969 C 31.925781 34.023438 35.3125 31.351562 38.335938 28.046875 C 39.152344 26.074219 36.742188 27.734375 35.945312 28.246094 C 31.578125 31.253906 27.316406 34.449219 22.710938 37.09375 C 20.359375 38.390625 17.617188 37.28125 15.265625 36.558594 C 13.15625 35.6875 10.066406 34.808594 11.886719 33.476562 Z M 11.886719 33.476562',\n mask: 'M0,0v64h64V0H0z M 11.886719 33.476562 C 15.617188 31.421875 19.78125 29.707031 23.671875 27.980469 C 30.367188 25.15625 37.085938 22.382812 43.875 19.800781 C 45.199219 19.359375 47.570312 18.929688 47.804688 20.886719 C 47.675781 23.660156 47.152344 26.414062 46.792969 29.167969 C 45.878906 35.222656 44.824219 41.261719 43.796875 47.300781 C 43.441406 49.308594 40.921875 50.351562 39.308594 49.0625 C 35.4375 46.449219 31.53125 43.855469 27.710938 41.179688 C 26.457031 39.90625 27.617188 38.078125 28.738281 37.167969 C 31.925781 34.023438 35.3125 31.351562 38.335938 28.046875 C 39.152344 26.074219 36.742188 27.734375 35.945312 28.246094 C 31.578125 31.253906 27.316406 34.449219 22.710938 37.09375 C 20.359375 38.390625 17.617188 37.28125 15.265625 36.558594 C 13.15625 35.6875 10.066406 34.808594 11.886719 33.476562 Z M 11.886719 33.476562',\n color: '#49a9e9'\n};\nvar _default = {\n bandsintown: {\n icon: 'M25.8,39.3h13.4v1.1H24.7V18h-5.6v28h25.8V33.7h-19V39.3z M31.4,24.7h-5.6v7.8h5.6V24.7z M38.2,24.7h-5.6v7.8h5.6V24.7z M39.3,18v14.6h5.6V18H39.3z',\n mask: 'M0,0v64h64V0H0z M32.6,24.7h5.6v7.8h-5.6V24.7z M25.8,24.7h5.6v7.8h-5.6V24.7z M44.9,46H19.1V18h5.6v22.4h14.6 v-1.1H25.8v-5.6h19V46z M44.9,32.6h-5.6V18h5.6V32.6z',\n color: '#1B8793'\n },\n behance: {\n icon: 'M29.1,31c0.8-0.4,1.5-0.9,1.9-1.5c0.4-0.6,0.6-1.4,0.6-2.3c0-0.9-0.1-1.6-0.4-2.2 c-0.3-0.6-0.7-1.1-1.2-1.4c-0.5-0.4-1.1-0.6-1.9-0.8c-0.7-0.2-1.5-0.2-2.4-0.2H17v18.5h8.9c0.8,0,1.6-0.1,2.4-0.3 c0.8-0.2,1.5-0.5,2.1-1c0.6-0.4,1.1-1,1.5-1.7c0.4-0.7,0.5-1.5,0.5-2.4c0-1.2-0.3-2.1-0.8-3C31.1,31.9,30.2,31.3,29.1,31z M21.1,25.7h3.8c0.4,0,0.7,0,1,0.1c0.3,0.1,0.6,0.2,0.9,0.3c0.3,0.2,0.5,0.4,0.6,0.6c0.2,0.3,0.2,0.6,0.2,1.1c0,0.8-0.2,1.3-0.7,1.7 c-0.5,0.3-1.1,0.5-1.8,0.5h-4.1V25.7z M28.2,36.7c-0.2,0.3-0.4,0.6-0.7,0.7c-0.3,0.2-0.6,0.3-1,0.4c-0.4,0.1-0.7,0.1-1.1,0.1h-4.3 v-5.1h4.4c0.9,0,1.6,0.2,2.1,0.6c0.5,0.4,0.8,1.1,0.8,2C28.4,36,28.3,36.4,28.2,36.7z M46.7,32.3c-0.2-0.9-0.6-1.8-1.2-2.5 C45,29,44.3,28.4,43.5,28c-0.8-0.4-1.8-0.7-3-0.7c-1,0-1.9,0.2-2.8,0.5c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.6-1.1,1.4-1.4,2.2 c-0.3,0.9-0.5,1.8-0.5,2.8c0,1,0.2,2,0.5,2.8c0.3,0.9,0.8,1.6,1.4,2.2c0.6,0.6,1.3,1.1,2.2,1.4c0.9,0.3,1.8,0.5,2.9,0.5 c1.5,0,2.8-0.3,3.9-1c1.1-0.7,1.9-1.8,2.4-3.4h-3.2c-0.1,0.4-0.4,0.8-1,1.2c-0.5,0.4-1.2,0.6-1.9,0.6c-1,0-1.8-0.3-2.4-0.8 c-0.6-0.5-0.9-1.5-0.9-2.6H47C47,34.2,47,33.2,46.7,32.3z M37.3,32.9c0-0.3,0.1-0.6,0.2-0.9c0.1-0.3,0.3-0.6,0.5-0.9 c0.2-0.3,0.5-0.5,0.9-0.7c0.4-0.2,0.9-0.3,1.5-0.3c0.9,0,1.6,0.3,2.1,0.7c0.4,0.5,0.8,1.2,0.8,2.1H37.3z M44.1,23.8h-7.5v1.8h7.5 V23.8z',\n mask: 'M40.4,30.1c-0.6,0-1.1,0.1-1.5,0.3c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,0.9c-0.1,0.3-0.2,0.6-0.2,0.9 h6c-0.1-0.9-0.4-1.6-0.8-2.1C42,30.3,41.3,30.1,40.4,30.1z M25.5,32.8h-4.4v5.1h4.3c0.4,0,0.8,0,1.1-0.1c0.4-0.1,0.7-0.2,1-0.4 c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.2-0.7,0.2-1.2c0-1-0.3-1.6-0.8-2C27.1,33,26.4,32.8,25.5,32.8z M27,29.5 c0.5-0.3,0.7-0.9,0.7-1.7c0-0.4-0.1-0.8-0.2-1.1c-0.2-0.3-0.4-0.5-0.6-0.6c-0.3-0.2-0.6-0.3-0.9-0.3c-0.3-0.1-0.7-0.1-1-0.1h-3.8 v4.3h4.1C25.9,30.1,26.5,29.9,27,29.5z M0,0v64h64V0H0z M36.6,23.8h7.5v1.8h-7.5V23.8z M31.9,38.1c-0.4,0.7-0.9,1.2-1.5,1.7 c-0.6,0.4-1.3,0.8-2.1,1c-0.8,0.2-1.6,0.3-2.4,0.3H17V22.6h8.7c0.9,0,1.7,0.1,2.4,0.2c0.7,0.2,1.3,0.4,1.9,0.8 c0.5,0.4,0.9,0.8,1.2,1.4c0.3,0.6,0.4,1.3,0.4,2.2c0,0.9-0.2,1.7-0.6,2.3c-0.4,0.6-1,1.1-1.9,1.5c1.1,0.3,2,0.9,2.5,1.7 c0.6,0.8,0.8,1.8,0.8,3C32.5,36.6,32.3,37.4,31.9,38.1z M47,35.3h-9.6c0,1.1,0.4,2.1,0.9,2.6c0.5,0.5,1.3,0.8,2.4,0.8 c0.7,0,1.4-0.2,1.9-0.6c0.5-0.4,0.9-0.8,1-1.2h3.2c-0.5,1.6-1.3,2.8-2.4,3.4c-1.1,0.7-2.4,1-3.9,1c-1.1,0-2-0.2-2.9-0.5 c-0.8-0.3-1.6-0.8-2.2-1.4c-0.6-0.6-1-1.4-1.4-2.2c-0.3-0.9-0.5-1.8-0.5-2.8c0-1,0.2-1.9,0.5-2.8c0.3-0.9,0.8-1.6,1.4-2.2 c0.6-0.6,1.3-1.1,2.2-1.5c0.8-0.4,1.8-0.5,2.8-0.5c1.1,0,2.1,0.2,3,0.7c0.8,0.4,1.5,1,2.1,1.8c0.5,0.7,0.9,1.6,1.2,2.5 C47,33.2,47,34.2,47,35.3z',\n color: '#007CFF'\n },\n clubhouse: {\n icon: 'M 0,0 H 64 V 64 H 0 Z',\n mask: 'M.03516.10352v64.16796h64.16796V.10352H.03517zm32.67578 15.42773c1.27648 0 2.23913.56594 2.80273 1.83984.82354-.53787 1.95547-.7372 2.91797-.48242 1.30479.33971 2.09883 1.24658 2.58008 4.02344.16985.88015.42298 1.95643.73437 2.89062.39633 1.19156.84993 2.12458 1.64258 3.51172.25478.42464.56556.90643.87696 1.35938l.25585-.50977c.76435-1.55957 2.26748-3.08789 4.44727-3.08789.93677 0 1.9553.34023 2.52148 1.30274.36802.53787.50977 1.1594.50977 1.69726 0 .73604-.31162 1.47288-.5664 2.03906-.05662.11324-.084.16896-.084.19727-.6511 1.35883-1.52929 3.06134-1.52929 5.04297 0 5.7493-2.12565 8.69592-3.76758 10.2246-1.6728 1.55958-4.27695 2.88868-7.30859 2.88868-2.15148 0-4.39038-.62256-6.23047-1.83984-2.5195-1.67023-4.05036-4.24896-5.4375-6.51368-1.13493-1.8967-1.95654-3.42436-3.17383-6.31445-.70772-1.61361-1.35861-3.28684-1.89648-5.07031-.48125-1.55957-.22765-2.6917.39258-3.42774.62537-.76434 1.50429-1.13283 2.4668-1.18945.16985 0 .3399.00099.50976.0293-.14155-.56618-.19922-1.04802-.19922-1.47266 0-1.84266 1.44707-3.20117 3.4004-3.20117.25477 0 .50985.02737.73632.08398-.0283-.3114-.05664-.56553-.05664-.8203 0-2.01252 1.6433-3.20118 3.45508-3.20118zm0 1.70117c-.82096 0-1.81055.42426-1.81055 1.5 0 .70773.19637 1.75487.39453 2.60156.33971.82354.39763 1.33373.82227 3.1172.25478 1.05.56555 1.95539.87695 2.74804.36802.96508.79223 1.78657 1.38672 2.89062.28309.53787.42605.53794 1.10547.16993.53787-.2831 1.32934-.6241 1.92383-.82227-1.01913-2.2081-1.86834-4.05043-2.29297-5.60742-.11324-.45295-.50981-2.2679-.62305-3.06055-.08493-.79265-.16902-1.471-.36719-2.20703-.22647-.90589-.53843-1.33008-1.41601-1.33008zm4.86718 1.25c-.44454-.00398-.9176.13975-1.21484.39453-.3114.2831-.42477.50806-.33984 1.13086.14154 1.3614.36826 2.40958.62304 3.4004.5945 2.32133 1.5842 4.13519 2.09375 5.21093.16986.36802.31262.51073.5957.48242.39633-.0283.62218-.0576.87696-.0293.3397.02831.5957.2267.5957.56641 0 .2831-.14278.39653-.65234.50977-1.04743.22647-2.37943.59404-3.68164 1.33008-1.10663.62537-2.06969 1.39009-2.94727 2.49414-.08492.11323-.17095.16992-.3125.16992-.19816 0-.36725-.22666-.5371-.45313-.16986-.22647-.2832-.39655-.2832-.5664 0-.19817.08503-.36827.2832-.62305.3114-.42464.67968-.73543.67968-.9336 0-.14154-.254-.48062-.48047-.87695-.36801-.67941-.99138-2.04142-1.41601-3.06054-.6511-1.557-1.1046-3.54053-1.35938-4.75782-.3114-1.33052-.79326-1.69921-1.5293-1.69921-1.01912 0-1.69726.5941-1.69726 1.5 0 .59706.19742 1.38919.59375 2.6914.25478.84927.50986 1.69848.73633 2.29297.36801 1.0217.82047 2.15466 1.2168 3.06055.36801.82096.90537 1.78437 1.16015 2.26562.14155.25478.39649.67882.39649.9336 0 .45294-.33808.70703-.79102.70703-.25478 0-.48155-.11344-.73633-.50977-.3114-.45552-.9914-1.78457-1.47265-2.77539-.36802-.82096-.99134-2.29533-1.30274-3.31445-.50956-1.61361-.84898-2.2373-1.72656-2.20899-.50956.02831-.9347.1984-1.2461.5664-.3114.39634-.33876 1.0189-.08398 1.83985.53787 1.72685 1.16229 3.31164 1.83398 4.93555 1.19156 2.8026 1.9565 4.24976 3.06055 6.08984 1.38714 2.26472 2.74794 4.53085 4.92774 5.97461 1.557 1.01913 3.45679 1.5586 5.29687 1.5586 2.57612 0 4.75934-1.13529 6.14649-2.4375 1.41802-1.30222 3.22851-3.85202 3.22851-8.97852 0-2.34965 1.01978-4.39213 1.64258-5.72266.16985-.3397.5371-1.04707.5371-1.55664 0-.22647-.05571-.5372-.19726-.76367-.25478-.39632-.65156-.53906-1.1328-.53906-1.50296 0-2.46605 1.13418-3.00392 2.125-.22647.42463-.39556.87617-.5371 1.35742-.3114 1.04744-.62341 1.47295-1.5293 2.20899-.48126.42463-1.07436.96208-1.41406 1.38672-.56618.76691-.73737 1.41837-.87891 2.4375-.02831.25478-.50903.36718-1.10352.36718-.3397 0-.45312-.11252-.45312-.65039 0-.56618.19841-1.41534.62305-2.17969.59448-1.04743 1.24537-1.61447 1.89648-2.15234.6511-.53787.84965-.7638.9629-1.10352-.5945-.79522-1.16035-1.61555-1.6133-2.4082-.82095-1.44376-1.35856-2.522-1.7832-3.82422-.3397-1.0217-.6231-2.21228-.79296-3.14648-.33971-1.9842-.67897-2.49226-1.33008-2.66211-.13447-.03539-.27955-.05336-.42773-.05469zm-23.04296.3125c.20637-.01372.43669.0524.69726.1875.80552.41949 3.64839 2.63281 4.1914 3.07031.52501.42207.45311.64058.17774 1.1836s-.5325.68176-1.02148.52734c-.97795-.30882-3.8801-2.06658-4.63672-2.51953-.68456-.41177-.77298-.78223-.29688-1.68555.2638-.49862.54472-.7408.88868-.76367zm-1.78907 9.43555c.1387-.014.29568-.00501.46875.01172.80295.0772 4.52137.68056 5.11328.86328.6125.19044.69768.4686.62305 1.0039-.09522.69486-.40907.82698-.81055.83985-.85441.02316-4.40417-.1292-5.21484-.20899-.70515-.06948-.99127-.38064-.91406-1.40234.06176-.82225.3183-1.06544.73437-1.10742zm7.76368 7.58398c.30798.01846.53917.21806.71289.65235.25478.63566.08012.88943-.4629 1.22656-.59963.37059-3.77807 2.0357-4.49609 2.30078-.51213.19044-1.06769.14539-1.39453-.82227-.40147-1.1967.1619-1.47961.96484-1.79101.7103-.27537 3.65724-1.34205 4.3418-1.52734.12031-.03217.23133-.04522.33399-.03907z',\n color: '#1F1F1A'\n },\n codepen: {\n icon: 'M24.4,35l6.8,4.5v-4L27.4,33L24.4,35z M23.8,30.6v2.7l2.1-1.4L23.8,30.6z M31.2,28.5v-4L24.4,29 l3,2L31.2,28.5z M39.6,29l-6.8-4.5v4l3.7,2.5L39.6,29z M32,30l-3,2l3,2l3-2L32,30z M32,16c-8.8,0-16,7.2-16,16c0,8.8,7.2,16,16,16 s16-7.2,16-16C48,23.2,40.8,16,32,16z M41.9,35.1c0,0.3-0.1,0.6-0.4,0.7l-9.1,5.9c-0.3,0.2-0.6,0.2-0.9,0l-9.1-5.9 c-0.2-0.2-0.4-0.4-0.4-0.7v-6.2c0-0.3,0.1-0.6,0.4-0.7l9.1-5.9c0.3-0.2,0.6-0.2,0.9,0l9.1,5.9c0.2,0.2,0.4,0.4,0.4,0.7V35.1z M32.8,35.5v4l6.8-4.5l-3-2L32.8,35.5z M40.2,33.4v-2.7L38.1,32L40.2,33.4z',\n mask: 'M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16c0-8.8,7.2-16,16-16s16,7.2,16,16C48,40.8,40.8,48,32,48z M32.5,22.3 c-0.3-0.2-0.6-0.2-0.9,0l-9.1,5.9c-0.2,0.2-0.4,0.4-0.4,0.7v6.2c0,0.3,0.1,0.6,0.4,0.7l9.1,5.9c0.3,0.2,0.6,0.2,0.9,0l9.1-5.9 c0.2-0.2,0.4-0.4,0.4-0.7v-6.2c0-0.3-0.1-0.6-0.4-0.7L32.5,22.3z M32.8,24.5l6.8,4.5l-3,2l-3.7-2.5V24.5z M31.2,24.5v4L27.4,31l-3-2 L31.2,24.5z M23.8,30.6l2.1,1.4l-2.1,1.4V30.6z M31.2,39.5L24.4,35l3-2l3.7,2.5V39.5z M32,34l-3-2l3-2l3,2L32,34z M32.8,39.5v-4 l3.7-2.5l3,2L32.8,39.5z M40.2,33.4L38.1,32l2.1-1.4V33.4z',\n color: '#151515'\n },\n discord: {\n icon: 'M 0,0 H 64 V 64 H 0 Z',\n mask: 'M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 26.404297 16.828125 L 26.769531 17.259766 C 20.186671 19.137498 17.152344 21.990234 17.152344 21.990234 C 17.152344 21.990234 17.957407 21.557233 19.310547 20.943359 C 23.223697 19.246178 26.331328 18.778253 27.611328 18.669922 C 27.830758 18.633812 28.012992 18.597656 28.232422 18.597656 C 30.463282 18.308769 32.987954 18.236508 35.621094 18.525391 C 39.095384 18.922604 42.825476 19.931951 46.628906 21.990234 C 46.628906 21.990234 43.738624 19.282029 37.521484 17.404297 L 38.035156 16.828125 C 38.035156 16.828125 43.044257 16.719236 48.310547 20.619141 C 48.310547 20.619141 53.576172 30.044365 53.576172 41.671875 C 53.576172 41.671875 50.468999 46.907386 42.386719 47.160156 C 42.386719 47.160156 41.069796 45.606565 39.972656 44.234375 C 44.763516 42.898295 46.591797 39.9375 46.591797 39.9375 C 45.092367 40.91248 43.666719 41.598919 42.386719 42.068359 C 40.558139 42.826669 38.802844 43.332214 37.083984 43.621094 C 33.573124 44.271074 30.354188 44.091468 27.611328 43.585938 C 25.526758 43.188727 23.735758 42.610963 22.236328 42.033203 C 21.395188 41.708213 20.480696 41.310228 19.566406 40.804688 C 19.456696 40.732487 19.346048 40.69722 19.236328 40.625 C 19.163228 40.5889 19.126414 40.551755 19.089844 40.515625 C 18.431554 40.154535 18.066406 39.902344 18.066406 39.902344 C 18.066406 39.902344 19.822217 42.789919 24.466797 44.162109 C 23.369647 45.534299 22.015625 47.160156 22.015625 47.160156 C 13.933335 46.907386 10.861328 41.671875 10.861328 41.671875 C 10.861328 30.044375 16.128906 20.619141 16.128906 20.619141 C 21.395196 16.719236 26.404297 16.828125 26.404297 16.828125 z M 25.380859 30.296875 C 23.296289 30.296875 21.650391 32.101957 21.650391 34.304688 C 21.650391 36.507407 23.332859 38.3125 25.380859 38.3125 C 27.465429 38.3125 29.111328 36.507407 29.111328 34.304688 C 29.147928 32.101957 27.465429 30.296875 25.380859 30.296875 z M 38.728516 30.296875 C 36.643946 30.296875 34.998047 32.101957 34.998047 34.304688 C 34.998047 36.507407 36.680516 38.3125 38.728516 38.3125 C 40.813086 38.3125 42.458984 36.507407 42.458984 34.304688 C 42.458984 32.101957 40.813086 30.296875 38.728516 30.296875 z ',\n color: '#7289DA'\n },\n dribbble: {\n icon: 'M32,48c-8.8,0-16-7.2-16-16s7.2-16,16-16 s16,7.2,16,16S40.8,48,32,48z M45.5,34.2C45,34,41.3,32.9,37,33.6c1.8,4.9,2.5,8.9,2.7,9.7C42.7,41.3,44.9,38,45.5,34.2z M37.3,44.6 c-0.2-1.2-1-5.4-2.9-10.4c0,0-0.1,0-0.1,0c-7.7,2.7-10.5,8-10.7,8.5c2.3,1.8,5.2,2.9,8.4,2.9C33.9,45.7,35.7,45.3,37.3,44.6z M21.8,41.2c0.3-0.5,4.1-6.7,11.1-9c0.2-0.1,0.4-0.1,0.5-0.2c-0.3-0.8-0.7-1.6-1.1-2.3c-6.8,2-13.4,2-14,1.9c0,0.1,0,0.3,0,0.4 C18.3,35.5,19.7,38.7,21.8,41.2z M18.6,29.2c0.6,0,6.2,0,12.6-1.7c-2.3-4-4.7-7.4-5.1-7.9C22.4,21.5,19.5,25,18.6,29.2z M28.8,18.7 c0.4,0.5,2.9,3.9,5.1,8c4.9-1.8,6.9-4.6,7.2-4.9c-2.4-2.1-5.6-3.4-9.1-3.4C30.9,18.4,29.8,18.5,28.8,18.7z M42.6,23.4 c-0.3,0.4-2.6,3.3-7.6,5.4c0.3,0.7,0.6,1.3,0.9,2c0.1,0.2,0.2,0.5,0.3,0.7c4.5-0.6,9.1,0.3,9.5,0.4C45.6,28.7,44.5,25.7,42.6,23.4z',\n mask: 'M34.3,34.3c-7.7,2.7-10.5,8-10.7,8.5c2.3,1.8,5.2,2.9,8.4,2.9c1.9,0,3.7-0.4,5.3-1.1 C37.1,43.4,36.3,39.2,34.3,34.3C34.4,34.2,34.4,34.3,34.3,34.3z M31.3,27.6c-2.3-4-4.7-7.4-5.1-7.9c-3.8,1.8-6.7,5.3-7.6,9.6 C19.2,29.2,24.9,29.3,31.3,27.6z M33,32.1c0.2-0.1,0.4-0.1,0.5-0.2c-0.3-0.8-0.7-1.6-1.1-2.3c-6.8,2-13.4,2-14,1.9 c0,0.1,0,0.3,0,0.4c0,3.5,1.3,6.7,3.5,9.1C22.2,40.6,25.9,34.4,33,32.1z M41.1,21.8c-2.4-2.1-5.6-3.4-9.1-3.4 c-1.1,0-2.2,0.1-3.2,0.4c0.4,0.5,2.9,3.9,5.1,8C38.8,24.9,40.8,22.1,41.1,21.8z M34.9,28.8c0.3,0.7,0.6,1.3,0.9,2 c0.1,0.2,0.2,0.5,0.3,0.7c4.5-0.6,9.1,0.3,9.5,0.4c0-3.2-1.2-6.2-3.1-8.5C42.3,23.8,40,26.7,34.9,28.8z M37,33.6 c1.8,4.9,2.5,8.9,2.7,9.7c3.1-2.1,5.2-5.4,5.9-9.2C45,34,41.3,32.9,37,33.6z M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16 s7.2-16,16-16s16,7.2,16,16S40.8,48,32,48z',\n color: '#ea4c89'\n },\n dropbox: {\n icon: 'M25.4,17.1L16,23.3l6.5,5.2l9.5-5.9L25.4,17.1z M16,33.7l9.4,6.1l6.6-5.5l-9.5-5.9L16,33.7z M32,34.3l6.6,5.5l9.4-6.1l-6.5-5.2L32,34.3z M48,23.3l-9.4-6.1L32,22.6l9.5,5.9L48,23.3z M32,35.5L25.4,41l-2.8-1.8v2.1l9.4,5.7 l9.4-5.7v-2.1L38.6,41L32,35.5z',\n mask: 'M0,0v64h64V0H0z M41.5,41.2L32,46.9l-9.4-5.7v-2.1l2.8,1.8l6.6-5.5l6.6,5.5l2.8-1.8V41.2z M48,33.7l-9.4,6.1 L32,34.3l-6.6,5.5L16,33.7l6.5-5.2L16,23.3l9.4-6.1l6.6,5.5l6.6-5.5l9.4,6.1l-6.5,5.2L48,33.7z M22.5,28.5l9.5,5.9l9.5-5.9L32,22.6 L22.5,28.5z',\n color: '#1081DE'\n },\n email: EMAIL_ICON,\n facebook: {\n icon: 'M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z',\n mask: 'M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z',\n color: '#3b5998'\n },\n fivehundredpix: {\n icon: 'M42.9,27.6c-2.1,0-3.6,1-5.8,3.5c-1.9-2.5-3.8-3.5-5.8-3.5c-1.7,0-3.7,0.7-4.7,3.2 c-1-2-2.7-2.6-4.1-2.6c-1,0-2,0.2-2.9,1.1l0.6-3.3h6.2v-2.5h-8.4l-1.5,8v0.2h2.7c0.6-1,1.5-1.2,2.3-1.2c1.2,0,2.3,0.6,2.6,2.4v0.7 c-0.2,1.6-1.3,2.6-2.6,2.6c-1.1,0-2.3-0.6-2.4-2.2h-3v0.7c0,0.3,0.5,1.5,0.5,1.6c1.3,2.1,3.4,2.5,5,2.5c1.8,0,3.9-0.7,5.1-3.2 c1.1,2.4,3,3.1,4.8,3.1c2.1,0,3.5-0.9,5.7-3.3c1.9,2.3,3.7,3.3,5.7,3.3c3.4,0,5.1-2.6,5.1-5.6C48,30,46.2,27.6,42.9,27.6z M34.7,33.7c-0.4,0.4-1,0.9-1.4,1.1c-0.7,0.4-1.3,0.6-1.9,0.6c-0.6,0-1.7-0.4-2.1-1.3c-0.1-0.2-0.2-0.6-0.2-0.7v-0.9 c0.3-1.5,1.1-2.1,2.2-2.1c0.1,0,0.6,0,0.9,0.1c0.4,0.1,0.7,0.3,1.1,0.6c0.4,0.3,2,1.6,2,1.8C35.3,33.2,34.9,33.5,34.7,33.7z M42.9,35.5c-1.3,0-2.6-0.9-3.9-2.3c1.4-1.5,2.5-2.6,3.8-2.6c1.5,0,2.3,1.1,2.3,2.5C45.2,34.4,44.4,35.5,42.9,35.5z',\n mask: 'M33.3,31.3c-0.4-0.2-0.7-0.4-1.1-0.6c-0.3-0.1-0.8-0.1-0.9-0.1c-1.1,0-1.9,0.6-2.2,2.1v0.9c0,0.1,0.1,0.4,0.2,0.7 c0.3,0.9,1.4,1.3,2.1,1.3s1.2-0.2,1.9-0.6c0.5-0.3,1-0.7,1.4-1.1c0.2-0.2,0.5-0.5,0.5-0.6C35.3,32.8,33.7,31.6,33.3,31.3z M42.8,30.6c-1.3,0-2.4,1-3.8,2.6c1.3,1.5,2.6,2.3,3.9,2.3c1.5,0,2.2-1.1,2.2-2.4C45.2,31.7,44.3,30.6,42.8,30.6z M0,0v64h64V0H0z M42.9,38.5c-2,0-3.8-1-5.7-3.3c-2.2,2.4-3.7,3.3-5.7,3.3c-1.8,0-3.7-0.7-4.8-3.1c-1.2,2.5-3.3,3.2-5.1,3.2c-1.6,0-3.8-0.4-5-2.5 C16.5,36,16,34.8,16,34.5v-0.7h3c0.1,1.6,1.3,2.2,2.4,2.2c1.3,0,2.4-0.9,2.6-2.6v-0.7c-0.2-1.8-1.3-2.4-2.6-2.4 c-0.8,0-1.6,0.2-2.3,1.2h-2.7v-0.2l1.5-8h8.4v2.5h-6.2l-0.6,3.3c1-0.9,2-1.1,2.9-1.1c1.4,0,3.2,0.6,4.1,2.6c1-2.4,3-3.2,4.7-3.2 c2,0,3.9,1,5.8,3.5c2.1-2.6,3.7-3.5,5.8-3.5c3.3,0,5.1,2.4,5.1,5.4C48,35.9,46.2,38.5,42.9,38.5z',\n color: '#222222'\n },\n flickr: {\n icon: 'M32,16c-8.8,0-16,7.2-16,16s7.2,16,16,16s16-7.2,16-16S40.8,16,32,16z M26,37c-2.8,0-5-2.2-5-5 s2.2-5,5-5s5,2.2,5,5S28.8,37,26,37z M38,37c-2.8,0-5-2.2-5-5s2.2-5,5-5s5,2.2,5,5S40.8,37,38,37z',\n mask: 'M38,27c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S40.8,27,38,27z M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16 s7.2-16,16-16s16,7.2,16,16S40.8,48,32,48z M26,27c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S28.8,27,26,27z',\n color: '#0063db'\n },\n foursquare: {\n icon: 'M41.5,17c0,0-14.3,0-16.5,0c-2.3,0-3,1.7-3,2.8c0,1.1,0,26.3,0,26.3c0,1.2,0.7,1.7,1,1.8 c0.4,0.1,1.4,0.3,2-0.4c0,0,7.8-9.1,7.9-9.2c0.2-0.2,0.2-0.2,0.4-0.2c0.4,0,3.4,0,5.1,0c2.1,0,2.5-1.5,2.7-2.4 c0.2-0.7,2.3-11.3,2.9-14.7C44.6,18.4,43.9,17,41.5,17z M41.1,35.7c0.2-0.7,2.3-11.3,2.9-14.7 M40.5,21.5l-0.7,3.6 c-0.1,0.4-0.6,0.8-1,0.8c-0.5,0-6.4,0-6.4,0c-0.7,0-1.2,0.5-1.2,1.2v0.8c0,0.7,0.5,1.2,1.2,1.2c0,0,5,0,5.5,0c0.5,0,1,0.6,0.9,1.1 c-0.1,0.5-0.6,3.3-0.7,3.6c-0.1,0.3-0.4,0.8-1,0.8c-0.5,0-4.5,0-4.5,0c-0.8,0-1.1,0.1-1.6,0.8c-0.5,0.7-5.4,6.5-5.4,6.5 c0,0.1-0.1,0-0.1,0V21.4c0-0.5,0.4-1,1-1c0,0,12.8,0,13.3,0C40.2,20.4,40.6,20.9,40.5,21.5z',\n mask: 'M39.7,20.4c-0.5,0-13.3,0-13.3,0c-0.6,0-1,0.5-1,1v20.5c0,0.1,0,0.1,0.1,0c0,0,4.9-5.9,5.4-6.5 c0.5-0.7,0.8-0.8,1.6-0.8c0,0,3.9,0,4.5,0c0.6,0,1-0.5,1-0.8c0.1-0.3,0.6-3,0.7-3.6c0.1-0.5-0.4-1.1-0.9-1.1c-0.5,0-5.5,0-5.5,0 c-0.7,0-1.2-0.5-1.2-1.2v-0.8c0-0.7,0.5-1.2,1.2-1.2c0,0,6,0,6.4,0c0.5,0,0.9-0.4,1-0.8l0.7-3.6C40.6,20.9,40.2,20.4,39.7,20.4z M0,0v64h64V0H0z M44,20.9l-1,5.2c-0.8,4.2-1.8,9-1.9,9.5c-0.2,0.9-0.6,2.4-2.7,2.4h-5.1c-0.2,0-0.2,0-0.4,0.2 c-0.1,0.1-7.9,9.2-7.9,9.2c-0.6,0.7-1.6,0.6-2,0.4c-0.4-0.1-1-0.6-1-1.8c0,0,0-25.2,0-26.3c0-1.1,0.7-2.8,3-2.8c2.3,0,16.5,0,16.5,0 C43.9,17,44.6,18.4,44,20.9z',\n color: '#0072b1'\n },\n github: {\n icon: 'M32,16c-8.8,0-16,7.2-16,16c0,7.1,4.6,13.1,10.9,15.2 c0.8,0.1,1.1-0.3,1.1-0.8c0-0.4,0-1.4,0-2.7c-4.5,1-5.4-2.1-5.4-2.1c-0.7-1.8-1.8-2.3-1.8-2.3c-1.5-1,0.1-1,0.1-1 c1.6,0.1,2.5,1.6,2.5,1.6c1.4,2.4,3.7,1.7,4.7,1.3c0.1-1,0.6-1.7,1-2.1c-3.6-0.4-7.3-1.8-7.3-7.9c0-1.7,0.6-3.2,1.6-4.3 c-0.2-0.4-0.7-2,0.2-4.2c0,0,1.3-0.4,4.4,1.6c1.3-0.4,2.6-0.5,4-0.5c1.4,0,2.7,0.2,4,0.5c3.1-2.1,4.4-1.6,4.4-1.6 c0.9,2.2,0.3,3.8,0.2,4.2c1,1.1,1.6,2.5,1.6,4.3c0,6.1-3.7,7.5-7.3,7.9c0.6,0.5,1.1,1.5,1.1,3c0,2.1,0,3.9,0,4.4 c0,0.4,0.3,0.9,1.1,0.8C43.4,45.1,48,39.1,48,32C48,23.2,40.8,16,32,16z',\n mask: 'M0,0v64h64V0H0z M37.1,47.2c-0.8,0.2-1.1-0.3-1.1-0.8c0-0.5,0-2.3,0-4.4c0-1.5-0.5-2.5-1.1-3 c3.6-0.4,7.3-1.7,7.3-7.9c0-1.7-0.6-3.2-1.6-4.3c0.2-0.4,0.7-2-0.2-4.2c0,0-1.3-0.4-4.4,1.6c-1.3-0.4-2.6-0.5-4-0.5 c-1.4,0-2.7,0.2-4,0.5c-3.1-2.1-4.4-1.6-4.4-1.6c-0.9,2.2-0.3,3.8-0.2,4.2c-1,1.1-1.6,2.5-1.6,4.3c0,6.1,3.7,7.5,7.3,7.9 c-0.5,0.4-0.9,1.1-1,2.1c-0.9,0.4-3.2,1.1-4.7-1.3c0,0-0.8-1.5-2.5-1.6c0,0-1.6,0-0.1,1c0,0,1,0.5,1.8,2.3c0,0,0.9,3.1,5.4,2.1 c0,1.3,0,2.3,0,2.7c0,0.4-0.3,0.9-1.1,0.8C20.6,45.1,16,39.1,16,32c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16 C48,39.1,43.4,45.1,37.1,47.2z',\n color: '#24292e'\n },\n gitlab: {\n icon: 'm50.402 32.559l-1.9688-6.0664v0.007812-0.007812-0.003907l-3.9141-12.035c-0.21484-0.63672-0.80469-1.0586-1.4766-1.0547-0.67969 0.003906-1.25 0.42187-1.4609 1.0625l-3.7148 11.426h-11.719l-3.7227-11.426c-0.21094-0.64063-0.78125-1.0586-1.4609-1.0625h-0.007813c-0.66406 0-1.2578 0.42187-1.4727 1.0625l-3.9023 12.027v0.003907s0 0.003906-0.003906 0.007812c0.003906-0.003906 0.003906-0.007812 0.003906-0.007812l-1.9805 6.0664c-0.29687 0.91406 0.027344 1.9102 0.80469 2.4766l17.082 12.402c0.003907 0 0.007813 0 0.007813 0.003906 0.007812 0.003906 0.015625 0.011719 0.023437 0.015625-0.007812-0.003906-0.011719-0.011719-0.019531-0.015625l0.003906 0.003906h0.003906c0.023438 0.019532 0.050782 0.035157 0.082032 0.050782l0.007812 0.007812h0.003906l0.003907 0.003906h0.007812c0 0.003907 0 0.003907 0.003907 0.003907 0.003906 0 0.003906 0.003906 0.007812 0.003906 0.015625 0.007813 0.03125 0.011719 0.046875 0.019531 0.015625 0.003906 0.027344 0.011719 0.042969 0.015625v0.003907h0.007812c0.003906 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0.019532 0.007812 0.039063 0.011719 0.0625 0.015625 0.007813 0.003906 0.015625 0.007813 0.023438 0.007813h0.003906c0.003906 0 0.003906 0.003906 0.007812 0.003906h0.015626c0.003906 0 0.003906 0 0.007812 0.003906h0.003906c0.039063 0.003906 0.082032 0.007812 0.12109 0.007812h0.003906c0.039063 0 0.082032-0.003906 0.12109-0.007812h0.003906c0.003906-0.003906 0.007813-0.003906 0.011719-0.003906h0.011719c0.003906 0 0.007812-0.003906 0.007812-0.003906h0.003906c0.007813-0.003907 0.015626-0.003907 0.027344-0.007813 0.019532-0.003906 0.039063-0.007813 0.0625-0.015625h0.003906c0.003907 0 0.007813 0 0.011719-0.003906h0.003907s0.003906 0 0.007812-0.003906h0.007812v-0.003907c0.015626-0.003906 0.03125-0.011719 0.046876-0.015625 0.015624-0.007812 0.027343-0.011718 0.042968-0.019531 0.003906 0 0.007813-0.003906 0.007813-0.003906h0.003906c0.003906-0.003907 0.003906-0.003907 0.007813-0.003907 0.003906 0 0.003906-0.003906 0.007812-0.003906 0.003906-0.003906 0.007812-0.003906 0.011719-0.007812 0.027343-0.015625 0.054687-0.03125 0.082031-0.050782 0 0 0.003906 0 0.003906-0.003906h0.003906c0.003907-0.003906 0.003907-0.003906 0.007813-0.003906l17.086-12.402c0.77734-0.56641 1.1016-1.5625 0.80078-2.4766zm-7.3516-16.98l3.3516 10.309h-6.6992zm2.7656 12.051l-1.3672 1.75-10.086 12.91 4.7695-14.66zm-14.645 19.371c0.003906 0.003906 0.003906 0.003906 0.003906 0.007812 0-0.003906 0-0.003906-0.003906-0.007812zm-1.5273-4.707l-11.445-14.664h6.6797zm-8.6875-26.715l3.3555 10.309h-6.7031zm-5.5234 18.047c-0.16797-0.12109-0.23438-0.33203-0.17188-0.52734l1.4727-4.5117 10.773 13.805zm16.027 13.789c-0.003907-0.003906-0.007813-0.007812-0.011719-0.007812v-0.003906c-0.007813-0.003906-0.015625-0.011719-0.019531-0.015625-0.015626-0.011719-0.027344-0.023438-0.039063-0.035157 0.003906 0 0.003906 0.003907 0.003906 0.003907s0.003907 0 0.003907 0.003906c0.027343 0.023437 0.050781 0.046875 0.078124 0.066406h0.003907s0 0.003907 0.003906 0.003907c-0.007813-0.003907-0.015625-0.011719-0.023437-0.015626zm0.54297-3.5039l-2.8047-8.625-2.4844-7.6562h10.586zm0.57422 3.4766c-0.007813 0.003906-0.015625 0.011719-0.019531 0.015625-0.003906 0-0.003906 0-0.003906 0.003906-0.003907 0-0.007813 0.003906-0.007813 0.007812-0.007813 0.003907-0.015625 0.011719-0.023437 0.015626 0 0 0-0.003907 0.003906-0.003907 0.027344-0.019531 0.054687-0.042969 0.078125-0.066406l0.003906-0.003906s0.003906 0 0.003906-0.003907c-0.011719 0.011719-0.023437 0.023438-0.035156 0.035157zm15.996-13.762l-12.074 8.7617 10.781-13.797 1.4648 4.5078c0.0625 0.19531-0.003906 0.40625-0.17188 0.52734z',\n mask: 'm0 0v64h64v-64h-64zm50.402 32.559l-1.9688-6.0664v0.007812-0.007812-0.003907l-3.9141-12.035c-0.21484-0.63672-0.80469-1.0586-1.4766-1.0547-0.67969 0.003906-1.25 0.42187-1.4609 1.0625l-3.7148 11.426h-11.719l-3.7227-11.426c-0.21094-0.64063-0.78125-1.0586-1.4609-1.0625h-0.007813c-0.66406 0-1.2578 0.42187-1.4727 1.0625l-3.9023 12.027v0.003907s0 0.003906-0.003906 0.007812c0.003906-0.003906 0.003906-0.007812 0.003906-0.007812l-1.9805 6.0664c-0.29687 0.91406 0.027344 1.9102 0.80469 2.4766l17.082 12.402c0.003907 0 0.007813 0 0.007813 0.003906 0.007812 0.003906 0.015625 0.011719 0.023437 0.015625-0.007812-0.003906-0.011719-0.011719-0.019531-0.015625l0.003906 0.003906h0.003906c0.023438 0.019532 0.050782 0.035157 0.082032 0.050782l0.007812 0.007812h0.003906l0.003907 0.003906h0.007812c0 0.003907 0 0.003907 0.003907 0.003907 0.003906 0 0.003906 0.003906 0.007812 0.003906 0.015625 0.007813 0.03125 0.011719 0.046875 0.019531 0.015625 0.003906 0.027344 0.011719 0.042969 0.015625v0.003907h0.007812c0.003906 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0.019532 0.007812 0.039063 0.011719 0.0625 0.015625 0.007813 0.003906 0.015625 0.007813 0.023438 0.007813h0.003906c0.003906 0 0.003906 0.003906 0.007812 0.003906h0.015626c0.003906 0 0.003906 0 0.007812 0.003906h0.003906c0.039063 0.003906 0.082032 0.007812 0.12109 0.007812h0.003906c0.039063 0 0.082032-0.003906 0.12109-0.007812h0.003906c0.003906-0.003906 0.007813-0.003906 0.011719-0.003906h0.011719c0.003906 0 0.007812-0.003906 0.007812-0.003906h0.003906c0.007813-0.003907 0.015626-0.003907 0.027344-0.007813 0.019532-0.003906 0.039063-0.007813 0.0625-0.015625h0.003906c0.003907 0 0.007813 0 0.011719-0.003906h0.003907s0.003906 0 0.007812-0.003906h0.007812v-0.003907c0.015626-0.003906 0.03125-0.011719 0.046876-0.015625 0.015624-0.007812 0.027343-0.011718 0.042968-0.019531 0.003906 0 0.007813-0.003906 0.007813-0.003906h0.003906c0.003906-0.003907 0.003906-0.003907 0.007813-0.003907 0.003906 0 0.003906-0.003906 0.007812-0.003906 0.003906-0.003906 0.007812-0.003906 0.011719-0.007812 0.027343-0.015625 0.054687-0.03125 0.082031-0.050782 0 0 0.003906 0 0.003906-0.003906h0.003906c0.003907-0.003906 0.003907-0.003906 0.007813-0.003906l17.086-12.402c0.77734-0.56641 1.1016-1.5625 0.80078-2.4766zm-7.3516-16.98l3.3516 10.309h-6.6992zm2.7656 12.051l-1.3672 1.75-10.086 12.91 4.7695-14.66zm-14.645 19.371c0.003906 0.003906 0.003906 0.003906 0.003906 0.007812 0-0.003906 0-0.003906-0.003906-0.007812zm-1.5273-4.707l-11.445-14.664h6.6797zm-8.6875-26.715l3.3555 10.309h-6.7031zm-5.5234 18.047c-0.16797-0.12109-0.23438-0.33203-0.17188-0.52734l1.4727-4.5117 10.773 13.805zm16.027 13.789c-0.003907-0.003906-0.007813-0.007812-0.011719-0.007812v-0.003906c-0.007813-0.003906-0.015625-0.011719-0.019531-0.015625-0.015626-0.011719-0.027344-0.023438-0.039063-0.035157 0.003906 0 0.003906 0.003907 0.003906 0.003907s0.003907 0 0.003907 0.003906c0.027343 0.023437 0.050781 0.046875 0.078124 0.066406h0.003907s0 0.003907 0.003906 0.003907c-0.007813-0.003907-0.015625-0.011719-0.023437-0.015626zm0.54297-3.5039l-2.8047-8.625-2.4844-7.6562h10.586zm0.57422 3.4766c-0.007813 0.003906-0.015625 0.011719-0.019531 0.015625-0.003906 0-0.003906 0-0.003906 0.003906-0.003907 0-0.007813 0.003906-0.007813 0.007812-0.007813 0.003907-0.015625 0.011719-0.023437 0.015626 0 0 0-0.003907 0.003906-0.003907 0.027344-0.019531 0.054687-0.042969 0.078125-0.066406l0.003906-0.003906s0.003906 0 0.003906-0.003907c-0.011719 0.011719-0.023437 0.023438-0.035156 0.035157zm15.996-13.762l-12.074 8.7617 10.781-13.797 1.4648 4.5078c0.0625 0.19531-0.003906 0.40625-0.17188 0.52734z',\n color: '#f96424'\n },\n google: {\n icon: 'M35.4,17h-8c-1.1,0-2.2,0.1-3.4,0.4 c-1.2,0.3-2.4,0.9-3.5,1.8c-1.7,1.6-2.5,3.4-2.5,5.4c0,1.6,0.6,3.1,1.8,4.3c1.1,1.3,2.7,2,4.9,2c0.4,0,0.8,0,1.3-0.1 c-0.1,0.2-0.2,0.4-0.2,0.7c-0.1,0.2-0.2,0.5-0.2,0.9c0,0.6,0.1,1.1,0.4,1.5c0.2,0.4,0.5,0.8,0.8,1.2c-0.9,0-2.1,0.1-3.5,0.4 c-1.4,0.2-2.8,0.7-4.1,1.5c-1.2,0.7-1.9,1.5-2.4,2.4c-0.5,0.9-0.7,1.7-0.7,2.5c0,1.5,0.7,2.8,2.1,3.9c1.4,1.2,3.5,1.8,6.3,1.8 c3.3-0.1,5.9-0.9,7.7-2.4c1.7-1.5,2.6-3.2,2.6-5.2c0-1.4-0.3-2.5-0.9-3.3c-0.6-0.8-1.4-1.6-2.2-2.3l-1.4-1.1 c-0.2-0.2-0.4-0.4-0.6-0.7c-0.2-0.3-0.4-0.6-0.4-1c0-0.4,0.1-0.8,0.4-1.1c0.2-0.3,0.4-0.6,0.7-0.8c0.4-0.4,0.8-0.7,1.2-1.1 c0.3-0.4,0.6-0.7,0.9-1.2c0.6-0.9,0.9-2,0.9-3.4c0-0.8-0.1-1.5-0.3-2.1c-0.2-0.6-0.5-1.1-0.7-1.5c-0.3-0.5-0.6-0.8-0.9-1.2 c-0.3-0.3-0.6-0.5-0.8-0.7H33L35.4,17z M31,38.9c0.7,0.8,1,1.6,1,2.7c0,1.3-0.5,2.3-1.5,3.1c-1,0.8-2.4,1.2-4.3,1.3 c-2.1,0-3.8-0.5-5-1.4c-1.3-0.9-1.9-2.1-1.9-3.5c0-0.7,0.1-1.3,0.4-1.8c0.3-0.5,0.6-0.9,0.9-1.2c0.4-0.3,0.8-0.6,1.1-0.7 c0.4-0.2,0.7-0.3,0.9-0.4c0.9-0.3,1.7-0.5,2.5-0.6c0.8-0.1,1.4-0.1,1.6-0.1c0.3,0,0.6,0,0.9,0C29.2,37.3,30.3,38.2,31,38.9z M29.7,27.1c-0.1,0.5-0.3,1.1-0.7,1.6c-0.7,0.7-1.6,1.1-2.6,1.1c-0.8,0-1.6-0.3-2.2-0.8c-0.6-0.5-1.2-1.1-1.6-1.9 c-0.8-1.6-1.3-3.1-1.3-4.5c0-1.1,0.3-2.1,0.9-3c0.7-0.9,1.6-1.3,2.7-1.3c0.8,0,1.5,0.3,2.2,0.7c0.6,0.5,1.1,1.1,1.5,1.9 c0.8,1.6,1.2,3.2,1.2,4.8C29.8,26.1,29.8,26.5,29.7,27.1z M43.7,29.5v-4.3h-2.5v4.3H37V32h4.2v4.2h2.5V32H48v-2.5H43.7z',\n mask: 'M0,0v64h64V0H0z M31.3,19.1c0.3,0.3,0.6,0.7,0.9,1.2c0.3,0.4,0.5,0.9,0.7,1.5c0.2,0.6,0.3,1.3,0.3,2.1 c0,1.4-0.3,2.6-0.9,3.4c-0.3,0.4-0.6,0.8-0.9,1.2c-0.4,0.4-0.8,0.7-1.2,1.1c-0.2,0.2-0.5,0.5-0.7,0.8c-0.2,0.3-0.4,0.7-0.4,1.1 c0,0.4,0.1,0.8,0.4,1c0.2,0.3,0.4,0.5,0.6,0.7l1.4,1.1c0.8,0.7,1.6,1.5,2.2,2.3c0.6,0.8,0.9,2,0.9,3.3c0,1.9-0.9,3.7-2.6,5.2 c-1.8,1.6-4.3,2.4-7.7,2.4c-2.8,0-4.9-0.6-6.3-1.8c-1.4-1.1-2.1-2.4-2.1-3.9c0-0.7,0.2-1.6,0.7-2.5c0.4-0.9,1.2-1.7,2.4-2.4 c1.3-0.7,2.7-1.2,4.1-1.5c1.4-0.2,2.6-0.3,3.5-0.4c-0.3-0.4-0.5-0.8-0.8-1.2c-0.3-0.4-0.4-0.9-0.4-1.5c0-0.4,0-0.6,0.2-0.9 c0.1-0.2,0.2-0.5,0.2-0.7c-0.5,0.1-0.9,0.1-1.3,0.1c-2.1,0-3.8-0.7-4.9-2c-1.2-1.2-1.8-2.7-1.8-4.3c0-2,0.8-3.8,2.5-5.4 c1.1-0.9,2.3-1.6,3.5-1.8c1.2-0.2,2.3-0.4,3.4-0.4h8L33,18.4h-2.5C30.7,18.6,31,18.8,31.3,19.1z M48,32h-4.3v4.2h-2.5V32H37v-2.5 h4.2v-4.3h2.5v4.3H48V32z M27.1,19.1c-0.6-0.5-1.4-0.7-2.2-0.7c-1.1,0-2,0.5-2.7,1.3c-0.6,0.9-0.9,1.9-0.9,3c0,1.5,0.4,3,1.3,4.5 c0.4,0.7,0.9,1.4,1.6,1.9c0.6,0.5,1.4,0.8,2.2,0.8c1.1,0,1.9-0.4,2.6-1.1c0.3-0.5,0.6-1,0.7-1.6c0.1-0.5,0.1-1,0.1-1.4 c0-1.6-0.4-3.2-1.2-4.8C28.2,20.2,27.7,19.5,27.1,19.1z M26.9,36.2c-0.2,0-0.7,0-1.6,0.1c-0.8,0.1-1.7,0.3-2.5,0.6 c-0.2,0.1-0.5,0.2-0.9,0.4c-0.4,0.2-0.7,0.4-1.1,0.7c-0.4,0.3-0.7,0.7-0.9,1.2c-0.3,0.5-0.4,1.1-0.4,1.8c0,1.4,0.6,2.6,1.9,3.5 c1.2,0.9,2.9,1.4,5,1.4c1.9,0,3.3-0.4,4.3-1.3c1-0.8,1.5-1.8,1.5-3.1c0-1-0.3-1.9-1-2.7c-0.7-0.7-1.8-1.6-3.3-2.6 C27.5,36.2,27.2,36.2,26.9,36.2z',\n color: '#dd4b39'\n },\n google_play: {\n icon: 'M24.4,45.6l16-8.8l-3.6-3.6L24.4,45.6z M22.2,18.5c-0.1,0.2-0.2,0.5-0.2,0.9v25.1 c0,0.4,0.1,0.6,0.2,0.9L35.6,32L22.2,18.5z M47.1,30.8L42.1,28L38.1,32l4,4l5-2.8C48.3,32.5,48.3,31.4,47.1,30.8z M40.4,27.1 l-15.9-8.8l12.3,12.3L40.4,27.1z',\n mask: 'M0,0v64h64V0H0z M40.4,27.1l-3.6,3.6L24.5,18.4L40.4,27.1z M22,44.5V19.4c0-0.4,0.1-0.7,0.2-0.9L35.6,32 L22.2,45.4C22.1,45.2,22,44.9,22,44.5z M24.4,45.6l12.4-12.4l3.6,3.6L24.4,45.6z M47.1,33.2l-5,2.8l-4-4l3.9-3.9l5.1,2.8 C48.3,31.4,48.3,32.5,47.1,33.2z',\n color: '#40BBC1'\n },\n groupme: {\n icon: 'M40.321,39.43448a10.40049,9.51724 0 0 1 -16.64078,0a2.60012,2.37931 0 1 0 -4.16019,2.85517a15.60073,14.27586 0 0 0 24.96117,0a2.60012,2.37931 0 0 0 -4.16019,-2.85517zm-17.42081,-12.84828a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l5.20024,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-4.75862l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-5.20024,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-1.30006,0a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,4.75862l-1.30006,0zm6.5003,-4.75862l5.20024,0l0,4.75862l-5.20024,0l0,-4.75862z',\n mask: 'M0,0v64h64V0H0z M40.321,39.43448a10.40049,9.51724 0 0 1 -16.64078,0a2.60012,2.37931 0 1 0 -4.16019,2.85517a15.60073,14.27586 0 0 0 24.96117,0a2.60012,2.37931 0 0 0 -4.16019,-2.85517zm-17.42081,-12.84828a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l5.20024,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-4.75862l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-5.20024,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-1.30006,0a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,4.75862l-1.30006,0zm6.5003,-4.75862l5.20024,0l0,4.75862l-5.20024,0l0,-4.75862z',\n color: '#00aff0'\n },\n instagram: {\n icon: 'M 39.88,25.89 C 40.86,25.89 41.65,25.10 41.65,24.12 41.65,23.14 40.86,22.35 39.88,22.35 38.90,22.35 38.11,23.14 38.11,24.12 38.11,25.10 38.90,25.89 39.88,25.89 Z M 32.00,24.42 C 27.82,24.42 24.42,27.81 24.42,32.00 24.42,36.19 27.82,39.58 32.00,39.58 36.18,39.58 39.58,36.18 39.58,32.00 39.58,27.82 36.18,24.42 32.00,24.42 Z M 32.00,36.92 C 29.28,36.92 27.08,34.72 27.08,32.00 27.08,29.28 29.28,27.08 32.00,27.08 34.72,27.08 36.92,29.28 36.92,32.00 36.92,34.72 34.72,36.92 32.00,36.92 Z M 32.00,19.90 C 35.94,19.90 36.41,19.92 37.96,19.99 39.41,20.05 40.19,20.29 40.71,20.50 41.40,20.77 41.89,21.08 42.41,21.60 42.92,22.12 43.24,22.61 43.51,23.30 43.71,23.82 43.95,24.60 44.02,26.04 44.09,27.60 44.11,28.06 44.11,32.01 44.11,35.95 44.09,36.41 44.02,37.97 43.95,39.41 43.71,40.19 43.51,40.71 43.24,41.40 42.92,41.90 42.41,42.41 41.89,42.93 41.40,43.25 40.71,43.51 40.19,43.71 39.41,43.96 37.96,44.02 36.41,44.09 35.94,44.11 32.00,44.11 28.06,44.11 27.59,44.09 26.04,44.02 24.59,43.96 23.81,43.72 23.29,43.51 22.60,43.24 22.11,42.93 21.59,42.41 21.08,41.90 20.76,41.40 20.49,40.71 20.29,40.19 20.05,39.41 19.98,37.97 19.91,36.41 19.89,35.95 19.89,32.01 19.89,28.06 19.91,27.60 19.98,26.04 20.05,24.60 20.29,23.82 20.49,23.30 20.76,22.61 21.08,22.12 21.59,21.60 22.11,21.08 22.60,20.76 23.29,20.50 23.81,20.30 24.59,20.05 26.04,19.99 27.59,19.91 28.06,19.90 32.00,19.90 Z M 32.00,17.24 C 27.99,17.24 27.49,17.26 25.91,17.33 24.34,17.40 23.27,17.65 22.33,18.01 21.36,18.39 20.54,18.90 19.72,19.72 18.90,20.54 18.39,21.37 18.01,22.33 17.65,23.27 17.40,24.34 17.33,25.92 17.26,27.49 17.24,27.99 17.24,32.00 17.24,36.01 17.26,36.51 17.33,38.09 17.40,39.66 17.65,40.73 18.01,41.67 18.39,42.65 18.90,43.47 19.72,44.29 20.54,45.11 21.37,45.61 22.33,45.99 23.27,46.36 24.34,46.61 25.92,46.68 27.49,46.75 27.99,46.77 32.01,46.77 36.02,46.77 36.52,46.75 38.09,46.68 39.66,46.61 40.74,46.36 41.68,45.99 42.65,45.62 43.47,45.11 44.29,44.29 45.11,43.47 45.62,42.64 46.00,41.67 46.36,40.74 46.61,39.66 46.68,38.09 46.75,36.51 46.77,36.01 46.77,32.00 46.77,27.99 46.75,27.49 46.68,25.91 46.61,24.34 46.36,23.27 46.00,22.33 45.62,21.35 45.11,20.53 44.29,19.71 43.47,18.89 42.65,18.39 41.68,18.01 40.74,17.64 39.67,17.39 38.09,17.32 36.51,17.26 36.01,17.24 32.00,17.24 Z',\n mask: 'M0,0v64h64V0H0z M 42.03,23.99 C 42.03,24.99 41.22,25.79 40.23,25.79 39.23,25.79 38.43,24.99 38.43,23.99 38.43,22.99 39.23,22.19 40.23,22.19 41.22,22.19 42.03,22.99 42.03,23.99 Z M 24.52,31.99 C 24.52,27.74 27.97,24.29 32.22,24.29 36.47,24.29 39.92,27.75 39.92,31.99 39.92,36.24 36.47,39.70 32.22,39.70 27.97,39.70 24.52,36.25 24.52,31.99 Z M 27.22,31.99 C 27.22,34.76 29.46,36.99 32.22,36.99 34.98,36.99 37.22,34.76 37.22,31.99 37.22,29.23 34.98,27.00 32.22,27.00 29.46,27.00 27.22,29.23 27.22,31.99 Z M 38.28,19.79 C 36.70,19.72 36.22,19.70 32.22,19.70 28.22,19.70 27.74,19.71 26.17,19.79 24.69,19.85 23.90,20.11 23.37,20.31 22.67,20.58 22.17,20.90 21.65,21.43 21.13,21.96 20.80,22.46 20.53,23.16 20.33,23.68 20.08,24.48 20.01,25.94 19.94,27.52 19.92,27.99 19.92,32.01 19.92,36.01 19.94,36.48 20.01,38.06 20.08,39.52 20.33,40.32 20.53,40.84 20.80,41.54 21.13,42.05 21.65,42.57 22.17,43.10 22.67,43.41 23.37,43.69 23.90,43.90 24.69,44.15 26.17,44.21 27.74,44.28 28.22,44.30 32.22,44.30 36.22,44.30 36.70,44.28 38.28,44.21 39.75,44.15 40.54,43.89 41.07,43.69 41.77,43.42 42.27,43.10 42.80,42.57 43.32,42.05 43.64,41.54 43.91,40.84 44.12,40.32 44.36,39.52 44.43,38.06 44.50,36.48 44.52,36.01 44.52,32.01 44.52,27.99 44.50,27.52 44.43,25.94 44.36,24.48 44.12,23.68 43.91,23.16 43.64,22.46 43.32,21.96 42.80,21.43 42.27,20.90 41.77,20.59 41.07,20.31 40.54,20.10 39.75,19.85 38.28,19.79 Z M 26.03,17.09 C 27.64,17.02 28.15,17.00 32.22,17.00 36.27,17.00 36.80,17.02 38.38,17.08 38.38,17.08 38.41,17.08 38.41,17.08 40.01,17.15 41.10,17.41 42.06,17.78 43.04,18.17 43.87,18.68 44.71,19.51 45.54,20.34 46.06,21.18 46.44,22.17 46.81,23.13 47.06,24.21 47.14,25.81 47.21,27.41 47.23,27.92 47.23,31.99 47.23,36.07 47.21,36.58 47.14,38.18 47.06,39.78 46.81,40.87 46.44,41.82 46.06,42.80 45.54,43.65 44.71,44.48 43.87,45.31 43.04,45.83 42.06,46.21 41.10,46.58 40.00,46.84 38.41,46.91 36.81,46.98 36.31,47.00 32.23,47.00 28.15,47.00 27.64,46.98 26.04,46.91 24.44,46.84 23.35,46.58 22.40,46.21 21.42,45.82 20.58,45.31 19.75,44.48 18.91,43.65 18.39,42.81 18.01,41.82 17.64,40.86 17.39,39.78 17.32,38.18 17.25,36.58 17.23,36.07 17.23,31.99 17.23,27.92 17.25,27.41 17.32,25.82 17.39,24.21 17.64,23.13 18.01,22.17 18.39,21.20 18.91,20.35 19.75,19.52 20.58,18.69 21.41,18.17 22.40,17.78 23.35,17.42 24.44,17.16 26.03,17.09 Z',\n color: '#e94475'\n },\n \"itch.io\": {\n icon: 'M 0,0 H 64 V 64 H 0 Z',\n mask: 'M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 32 16 C 36.482469 15.999275 39.489763 16.027944 43.828125 16.197266 C 45.223688 17.11826 47.973899 20.631595 48 21.552734 L 48 23.076172 C 48 25.008914 46.375769 26.707031 44.900391 26.707031 C 43.128974 26.707031 41.652344 25.07576 41.652344 23.138672 C 41.652344 25.07576 40.226756 26.707031 38.455078 26.707031 C 36.68353 26.707031 35.302734 25.07576 35.302734 23.138672 C 35.302734 25.07576 33.787432 26.707031 32.015625 26.707031 L 31.984375 26.707031 C 30.212699 26.707031 28.697266 25.07576 28.697266 23.138672 C 28.697266 25.07576 27.316728 26.707031 25.544922 26.707031 C 23.773245 26.707031 22.347656 25.07576 22.347656 23.138672 C 22.347526 25.07576 20.871157 26.707031 19.099609 26.707031 C 17.624234 26.707031 16 25.008624 16 23.076172 L 16 21.552734 C 16.026082 20.63174 18.776052 17.11855 20.171875 16.197266 C 21.406769 16.077682 27.517662 16.000435 32 16 z M 28.673828 25.796875 A 3.6505562 4.0580007 0 0 0 29.292969 26.689453 A 3.7155025 4.1301957 0 0 0 31.894531 27.867188 C 31.930136 27.867188 31.964779 27.866621 32 27.865234 C 32.035221 27.866088 32.07219 27.867188 32.107422 27.867188 A 3.7155025 4.1301957 0 0 0 34.708984 26.689453 A 3.6502954 4.0577109 0 0 0 35.326172 25.796875 A 3.6548598 4.0627847 0 0 0 35.949219 26.689453 C 36.617985 27.416189 37.534472 27.867188 38.544922 27.867188 A 3.7141985 4.1287462 0 0 0 41.146484 26.689453 C 41.388792 26.425753 41.573442 26.142952 41.742188 25.814453 C 41.910814 26.143677 42.1458 26.425338 42.388672 26.689453 A 3.7168066 4.1316454 0 0 0 44.990234 27.867188 C 45.112172 27.867188 45.239291 27.830162 45.341797 27.791016 C 45.484209 29.439616 45.543344 31.01503 45.564453 32.164062 L 45.566406 32.169922 C 45.569073 32.753426 45.571445 33.23411 45.574219 33.900391 C 45.546831 37.359375 45.881298 45.110721 44.201172 47.015625 C 41.597581 47.690463 36.806287 47.998187 32 48 C 27.193582 47.998115 22.402421 47.690463 19.798828 47.015625 C 18.118702 45.110865 18.455126 37.359375 18.427734 33.900391 C 18.430401 33.233965 18.432987 32.753281 18.435547 32.169922 L 18.435547 32.164062 C 18.456799 31.015319 18.515782 29.439616 18.658203 27.791016 C 18.760709 27.830151 18.887947 27.867188 19.009766 27.867188 A 3.7168066 4.1316454 0 0 0 21.611328 26.689453 C 21.85416 26.425316 22.089324 26.143533 22.257812 25.814453 C 22.426437 26.142953 22.611207 26.425606 22.853516 26.689453 A 3.7144592 4.129036 0 0 0 25.455078 27.867188 C 26.465659 27.867188 27.382014 27.416332 28.050781 26.689453 A 3.6548598 4.0627847 0 0 0 28.673828 25.796875 z M 37.998047 29.636719 L 37.998047 29.638672 L 37.996094 29.638672 C 36.938044 29.640989 35.998583 29.639715 34.833984 31.052734 C 33.917302 30.94591 32.958545 30.891191 32 30.892578 C 31.041455 30.890977 30.082567 30.945897 29.166016 31.052734 C 28.001416 29.63986 27.061956 29.641019 26.003906 29.638672 L 26.001953 29.638672 C 25.502078 29.638672 23.502722 29.638165 22.109375 33.988281 L 20.613281 39.955078 C 19.504239 44.394801 20.966648 44.503759 22.792969 44.507812 C 25.50128 44.395752 27.001953 42.209586 27.001953 40.023438 C 28.501065 40.296565 30.250885 40.433594 32 40.433594 C 33.748987 40.433449 35.498804 40.296562 36.998047 40.023438 C 36.998047 42.209586 38.496636 44.395759 41.205078 44.507812 C 43.031397 44.503898 44.495762 44.39464 43.386719 39.955078 L 41.890625 33.988281 C 40.497278 29.638166 38.497925 29.636719 37.998047 29.636719 z M 32 33.056641 C 32 33.056641 34.851013 35.967594 35.363281 37.001953 L 33.498047 36.919922 L 33.498047 38.728516 C 33.498047 38.813166 32.749101 38.778784 32 38.740234 C 31.250641 38.778805 30.501953 38.813177 30.501953 38.728516 L 30.501953 36.919922 L 28.636719 37.001953 C 29.148854 35.967594 31.997653 33.059414 32 33.056641 z ',\n color: '#fa5c5c'\n },\n itunes: {\n icon: 'M41.1,17c-0.1,0-0.2,0-0.3,0l-14.7,3c-0.6,0.1-1.1,0.7-1.1,1.4v17.6c0,0.8-0.6,1.4-1.4,1.4 h-2.8c-1.9,0-3.4,1.5-3.4,3.4c0,1.9,1.5,3.4,3.4,3.4h2c2.2,0,4-1.8,4-4V27.4c0-0.4,0.3-0.8,0.7-0.9l12.1-2.4c0.1,0,0.1,0,0.2,0 c0.5,0,0.9,0.4,0.9,0.9v11c0,0.8-0.6,1.4-1.4,1.4h-2.8c-1.9,0-3.4,1.5-3.4,3.4c0,1.9,1.5,3.4,3.4,3.4h2c2.2,0,4-1.8,4-4V18.4 C42.5,17.6,41.9,17,41.1,17z',\n mask: 'M0,0v64h64V0H0z M42.5,40c0,2.2-1.8,4-4,4h-2c-1.9,0-3.4-1.5-3.4-3.4s1.5-3.4,3.4-3.4h2.8c0.8,0,1.4-0.6,1.4-1.4 v-11c0-0.5-0.4-0.9-0.9-0.9c-0.1,0-0.1,0-0.2,0l-12.1,2.4c-0.4,0.1-0.7,0.4-0.7,0.9V43c0,2.2-1.8,4-4,4h-2c-1.9,0-3.4-1.5-3.4-3.4 c0-1.9,1.5-3.4,3.4-3.4h2.8c0.8,0,1.4-0.6,1.4-1.4V21.3c0-0.7,0.5-1.2,1.1-1.4l14.7-3c0.1,0,0.2,0,0.3,0c0.8,0,1.4,0.6,1.4,1.4V40z',\n color: '#E049D1'\n },\n linkedin: {\n icon: 'M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z',\n mask: 'M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z',\n color: '#007fb1'\n },\n linktree: {\n icon: 'M27.43603,19.38636c-0.60084,-0.94849 -2.16195,-0.94849 -2.76234,0l-10.32917,16.44343c-0.48058,0.84332 0.24007,1.79182 1.32104,1.79182l6.96599,0l0,6.21877c0,0.63259 0.60084,1.15962 1.32149,1.15962l4.08339,0c0.72065,0 1.32104,-0.52703 1.32104,-1.15962l0,-6.21877l-1.92144,0c-0.84091,0 -1.4413,-0.52703 -1.56156,-1.15962c0,-0.21073 0,-0.42147 0.12026,-0.63454l5.7652,-9.17021l-4.3239,-7.27088zm9.12794,0c0.60084,-0.94849 2.16195,-0.94849 2.76234,0l10.32917,16.44343c0.48058,0.84332 -0.24007,1.79182 -1.32104,1.79182l-6.84618,0l0,6.21877c0,0.63259 -0.60039,1.15962 -1.32238,1.15962l-4.32257,0c-0.72065,0 -1.32104,-0.52703 -1.32104,-1.15962l0,-6.21877l1.92188,0c0.84046,0 1.44086,-0.52703 1.56111,-1.15962c0,-0.21073 0,-0.42147 -0.12026,-0.63454l-5.76476,-9.16786l4.44371,-7.27322z',\n mask: 'M0,0v64h64V0H0z M27.43603,19.38636c-0.60084,-0.94849 -2.16195,-0.94849 -2.76234,0l-10.32917,16.44343c-0.48058,0.84332 0.24007,1.79182 1.32104,1.79182l6.96599,0l0,6.21877c0,0.63259 0.60084,1.15962 1.32149,1.15962l4.08339,0c0.72065,0 1.32104,-0.52703 1.32104,-1.15962l0,-6.21877l-1.92144,0c-0.84091,0 -1.4413,-0.52703 -1.56156,-1.15962c0,-0.21073 0,-0.42147 0.12026,-0.63454l5.7652,-9.17021l-4.3239,-7.27088zm9.12794,0c0.60084,-0.94849 2.16195,-0.94849 2.76234,0l10.32917,16.44343c0.48058,0.84332 -0.24007,1.79182 -1.32104,1.79182l-6.84618,0l0,6.21877c0,0.63259 -0.60039,1.15962 -1.32238,1.15962l-4.32257,0c-0.72065,0 -1.32104,-0.52703 -1.32104,-1.15962l0,-6.21877l1.92188,0c0.84046,0 1.44086,-0.52703 1.56111,-1.15962c0,-0.21073 0,-0.42147 -0.12026,-0.63454l-5.76476,-9.16786l4.44371,-7.27322z',\n color: '#39e09b'\n },\n mailto: EMAIL_ICON,\n medium: {\n icon: 'M47,23.7h-1.2c-0.4,0-0.9,0.6-0.9,1v14.7c0,0.4,0.5,1,0.9,1H47v3.4H36.4v-3.4h2.1V24.9h-0.1 l-5.3,18.9h-4.1l-5.2-18.9h-0.1v15.5H26v3.4h-9v-3.4h1.2c0.5,0,1-0.6,1-1V24.7c0-0.4-0.5-1-1-1H17v-3.6h11.3l3.7,13.8h0.1l3.7-13.8 H47V23.7z',\n mask: 'M0,0v64h64V0H0z M47,23.7h-1.2c-0.4,0-0.9,0.6-0.9,1v14.7c0,0.4,0.5,1,0.9,1H47v3.4H36.4v-3.4h2.1V24.9h-0.1 l-5.3,18.9h-4.1l-5.2-18.9h-0.1v15.5H26v3.4h-9v-3.4h1.2c0.5,0,1-0.6,1-1V24.7c0-0.4-0.5-1-1-1H17v-3.6h11.3l3.7,13.8h0.1l3.7-13.8 H47V23.7z',\n color: '#333332'\n },\n meetup: {\n icon: 'M30.8,33.4c0-6.3,1.9-11.9,3.5-15.3c0.5-1.1,0.9-1.4,1.9-1.4c1.3,0,2.9,0.2,4.1,0.4 c1.1,0.2,1.5,1.6,1.7,2.5c1.2,4.5,4.7,18.7,5.5,22.4c0.2,0.8,0.6,2,0.1,2.3c-0.4,0.2-2.5,0.9-3.9,1c-0.6,0.1-1.1-0.6-1.4-1.5 c-1.5-4.6-3.5-11.8-5.2-16.6c0,3.7-0.3,10.8-0.4,12c-0.1,1.7-0.4,3.7-1.8,3.9c-1.1,0.2-2.4,0.4-4,0.4c-1.3,0-1.8-0.9-2.4-1.8 c-1-1.4-3.1-4.8-4.1-6.9c0.3,2.3,0.7,4.7,0.9,5.8c0.1,0.8,0,1.5-0.6,1.9c-1,0.7-3.2,1.4-4.1,1.4c-0.8,0-1.5-0.8-1.6-1.6 c-0.7-3.4-1.2-8-1.1-11.1c0-2.8,0-5.9,0.2-8.3c0-0.7,0.3-1.1,0.9-1.4c1.2-0.5,3-0.6,4.7-0.3c0.8,0.1,1,0.8,1.4,1.4 C26.9,25.5,28.9,29.5,30.8,33.4z',\n mask: 'M0,0v64h64V0H0z M47.8,44.3c-0.4,0.2-2.5,0.9-3.9,1c-0.6,0.1-1.1-0.6-1.4-1.5c-1.5-4.6-3.5-11.8-5.2-16.6 c0,3.7-0.3,10.8-0.4,12c-0.1,1.7-0.4,3.7-1.8,3.9c-1.1,0.2-2.4,0.4-4,0.4c-1.3,0-1.8-0.9-2.4-1.8c-1-1.4-3.1-4.8-4.1-6.9 c0.3,2.3,0.7,4.7,0.9,5.8c0.1,0.8,0,1.5-0.6,1.9c-1,0.7-3.2,1.4-4.1,1.4c-0.8,0-1.5-0.8-1.6-1.6c-0.7-3.4-1.2-8-1.1-11.1 c0-2.8,0-5.9,0.2-8.3c0-0.7,0.3-1.1,0.9-1.4c1.2-0.5,3-0.6,4.7-0.3c0.8,0.1,1,0.8,1.4,1.4c1.7,2.8,3.8,6.7,5.7,10.6 c0-6.3,1.9-11.9,3.5-15.3c0.5-1.1,0.9-1.4,1.9-1.4c1.3,0,2.9,0.2,4.1,0.4c1.1,0.2,1.5,1.6,1.7,2.5c1.2,4.5,4.7,18.7,5.5,22.4 C47.8,42.8,48.3,44,47.8,44.3z',\n color: '#E51937'\n },\n pinterest: {\n icon: 'M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z',\n mask: 'M0,0v64h64V0H0z M32,48c-1.6,0-3.1-0.2-4.5-0.7c0.6-1,1.3-2.2,1.6-3.4c0.2-0.7,1.1-4.4,1.1-4.4 c0.6,1.1,2.2,2,3.9,2c5.1,0,8.6-4.7,8.6-11c0-4.7-4-9.2-10.1-9.2c-7.6,0-11.4,5.5-11.4,10c0,2.8,1,5.2,3.3,6.1 c0.4,0.1,0.7,0,0.8-0.4c0.1-0.3,0.2-1,0.3-1.3c0.1-0.4,0.1-0.5-0.2-0.9c-0.6-0.8-1.1-1.7-1.1-3.1c0-4,3-7.7,7.9-7.7 c4.3,0,6.7,2.6,6.7,6.1c0,4.6-2,8.5-5.1,8.5c-1.7,0-2.9-1.4-2.5-3.1c0.5-2,1.4-4.2,1.4-5.7c0-1.3-0.7-2.4-2.2-2.4 c-1.7,0-3.1,1.8-3.1,4.1c0,1.5,0.5,2.5,0.5,2.5s-1.8,7.4-2.1,8.7c-0.3,1.2-0.3,2.6-0.3,3.7C19.9,44.2,16,38.6,16,32 c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16C48,40.8,40.8,48,32,48z',\n color: '#cb2128'\n },\n pixiv: {\n icon: 'M 33.552734 16.46875 C 21.708875 16.46875 13.650391 25.615234 13.650391 25.615234 L 15.919922 29.220703 C 15.919922 29.220703 17.180054 29.327146 16.511719 27.203125 C 17.085451 26.116698 18.210086 24.658325 20.404297 22.970703 L 20.404297 46.978516 C 19.458253 47.247074 18.209962 47.747072 19.064453 48.601562 L 25.582031 48.601562 C 26.442627 47.740968 25.088743 47.222673 24.261719 46.978516 L 24.261719 41.316406 C 24.261719 41.316406 28.730963 43.072266 33.552734 43.072266 C 37.78552 43.072266 41.640263 41.811762 44.505859 39.535156 C 47.374506 37.270752 49.218055 33.892818 49.208984 30.029297 C 49.227296 26.306156 47.618647 22.755613 44.798828 20.320312 C 42.006468 17.881962 38.093741 16.472656 33.552734 16.472656 L 33.552734 16.46875 z M 33.15625 18.496094 C 36.757322 18.499147 39.580706 19.856689 41.494141 21.925781 C 43.401491 24.000973 44.442052 26.756349 44.451172 29.966797 C 44.438968 33.091793 43.327375 35.664185 41.34375 37.638672 C 39.363164 39.597898 36.479609 40.833984 33.15625 40.833984 L 33.134766 40.833984 C 29.436041 40.833984 26.318602 40.114744 24.261719 39.101562 L 24.261719 21.087891 C 26.523068 19.482668 30.189947 18.489893 33.15625 18.496094 z ',\n mask: 'M0,0v64h64V0H0z M 33.552734 16.46875 C 21.708875 16.46875 13.650391 25.615234 13.650391 25.615234 L 15.919922 29.220703 C 15.919922 29.220703 17.180054 29.327146 16.511719 27.203125 C 17.085451 26.116698 18.210086 24.658325 20.404297 22.970703 L 20.404297 46.978516 C 19.458253 47.247074 18.209962 47.747072 19.064453 48.601562 L 25.582031 48.601562 C 26.442627 47.740968 25.088743 47.222673 24.261719 46.978516 L 24.261719 41.316406 C 24.261719 41.316406 28.730963 43.072266 33.552734 43.072266 C 37.78552 43.072266 41.640263 41.811762 44.505859 39.535156 C 47.374506 37.270752 49.218055 33.892818 49.208984 30.029297 C 49.227296 26.306156 47.618647 22.755613 44.798828 20.320312 C 42.006468 17.881962 38.093741 16.472656 33.552734 16.472656 L 33.552734 16.46875 z M 33.15625 18.496094 C 36.757322 18.499147 39.580706 19.856689 41.494141 21.925781 C 43.401491 24.000973 44.442052 26.756349 44.451172 29.966797 C 44.438968 33.091793 43.327375 35.664185 41.34375 37.638672 C 39.363164 39.597898 36.479609 40.833984 33.15625 40.833984 L 33.134766 40.833984 C 29.436041 40.833984 26.318602 40.114744 24.261719 39.101562 L 24.261719 21.087891 C 26.523068 19.482668 30.189947 18.489893 33.15625 18.496094 z ',\n color: '#0097fa'\n },\n ravelry: {\n icon: 'm 42.692268,28.943187 c 0,0 -2.183968,-0.39738 -3.751944,-0.39738 -3.583932,0 -4.423932,1.986862 -4.423932,4.938744 v 12.48877 h -9.68784 v -25.43168 h 9.68784 v 4.257542 c 1.175992,-3.576324 3.527958,-4.825204 8.175876,-4.825204 z',\n mask: 'm 63.924726,29.096387 c -0.159216,-1.37862 -0.223986,-2.77672 -0.49359,-4.132644 -0.32719,-1.64706 -0.744786,-3.286822 -1.26799,-4.880344 -0.914378,-2.785641 -2.24955,-5.367746 -4.06872,-7.666806 C 57.306434,11.420731 56.508042,10.42083 55.614454,9.5247095 53.750496,7.6562678 51.67293,6.055426 49.405762,4.7092447 47.043398,3.3062835 44.565046,2.1693223 41.930674,1.4199816 40.478706,1.0072007 38.995526,0.69580128 37.513944,0.40466133 36.620358,0.22946083 35.701974,0.18246043 34.795604,0.07380026 34.753982,0.06979694 34.716296,0.02600006 34.677222,0 33.258834,8.1989087e-4 31.840466,8.1989087e-4 30.422078,8.1989087e-4 30.104492,0.05262056 29.788486,0.12402026 29.468494,0.15402006 c -1.53998,0.14520013 -3.035156,0.50360058 -4.51433,0.94640074 -1.82077,0.5441412 -3.55994,1.2926611 -5.24071,2.1806619 -1.760773,0.9309812 -3.427949,2.0184831 -5.018319,3.2211239 -0.812793,0.6146996 -1.616767,1.2480602 -2.368755,1.9357611 -1.340791,1.227781 -2.6847606,2.4580233 -3.9439328,3.7693433 -1.700776,1.771942 -3.1671654,3.739324 -4.434328,5.859985 -1.123196,1.880602 -2.0455666,3.849625 -2.7007613,5.945945 -0.4727961,1.514064 -0.8143915,3.054064 -1.01357978,4.634626 -0.19839916,1.576502 -0.28319628,3.157882 -0.20481124,4.736824 0.08957116,1.796262 0.25360212,3.586864 0.58320198,5.365286 0.45679544,2.46452 1.17117854,4.831704 2.20476394,7.106446 0.8551724,1.880602 1.9239546,3.622543 3.1631412,5.270425 1.039188,1.38106 2.2159696,2.629922 3.4735436,3.78878 1.6863734,1.553804 3.5335414,2.901628 5.5063064,4.07833 2.339162,1.395656 4.794331,2.507478 7.36709,3.370342 1.750374,0.587138 3.54155,1.00558 5.355908,1.311318 0.799988,0.1346 1.617576,0.167 2.426364,0.249782 0.05446,0.006 0.10476,0.04942 0.15684,0.0746 1.41839,0 2.836758,0 4.255146,0 0.33039,-0.0518 0.65918,-0.1248 0.991976,-0.1524 2.152778,-0.1776 4.231136,-0.711222 6.258296,-1.428904 2.267166,-0.803656 4.441528,-1.83034 6.451108,-3.17572 1.28478,-0.85962 2.555948,-1.743562 3.787124,-2.679402 0.762404,-0.57984 1.447982,-1.26672 2.148768,-1.92766 0.5224,-0.493062 1.023192,-1.010444 1.516784,-1.533524 1.590368,-1.68922 2.963142,-3.547122 4.141522,-5.551825 1.257592,-2.139302 2.287174,-4.387284 2.93915,-6.790146 0.376814,-1.388362 0.652002,-2.805922 0.924798,-4.220246 0.13594,-0.703898 0.16474,-1.42972 0.246402,-2.14498 0.0038,-0.0422 0.04714,-0.0802 0.0728,-0.12 0,-1.64706 0,-3.2941 0,-4.941162 -0.02566,-0.0794 -0.0655,-0.1566 -0.07518,-0.23762 z m -21.232458,-0.1532 c 0,0 -2.183968,-0.39738 -3.751944,-0.39738 -3.583932,0 -4.423932,1.986862 -4.423932,4.938744 v 12.48877 h -9.68784 v -25.43168 h 9.68784 v 4.257542 c 1.175992,-3.576324 3.527958,-4.825204 8.175876,-4.825204 z',\n color: '#EE6E62'\n },\n rdio: {\n icon: 'M47.3,25.7c-3.2,0.1-7.1-2.4-8.7-3.4c-0.1-0.1-0.3-0.2-0.4-0.2c-0.2-0.1-0.3-0.2-0.5-0.3v9.3h0 c0,0.8-0.2,1.7-0.8,2.6l0,0.1c-1.5,2.4-4.7,3.9-7.7,2.9c-2.9-1-3.7-3.8-2.1-6.3l0-0.1c1.5-2.4,4.7-3.9,7.7-2.9 c0.2,0.1,0.4,0.2,0.6,0.3v-6.8c-1.1-0.3-2.2-0.5-3.4-0.5c-6.9,0-12,5.2-12,11.6v0.1c0,6.4,5.1,11.5,12,11.5c6.9,0,12-5.2,12-11.6 v-0.1c0-0.5,0-1-0.1-1.5C47.5,29.5,49,25.8,47.3,25.7z',\n mask: 'M0,0v64h64V0H0z M43.9,30.5c0.1,0.5,0.1,1,0.1,1.5V32c0,6.4-5.1,11.6-12,11.6c-6.9,0-12-5.1-12-11.5V32 c0-6.4,5.1-11.6,12-11.6c1.2,0,2.3,0.2,3.4,0.5v6.8c-0.2-0.1-0.4-0.2-0.6-0.3c-3-1-6.2,0.4-7.7,2.9l0,0.1c-1.5,2.5-0.8,5.3,2.1,6.3 c3,1,6.2-0.4,7.7-2.9l0-0.1c0.5-0.8,0.8-1.7,0.8-2.6h0v-9.3c0.2,0.1,0.3,0.2,0.5,0.3c0.1,0.1,0.3,0.2,0.4,0.2c1.5,1,5.4,3.5,8.7,3.4 C49,25.8,47.5,29.5,43.9,30.5z',\n color: '#0475C5'\n },\n reddit: {\n icon: 'M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344',\n mask: 'M0,0v64h64V0H0z M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344',\n color: '#FF4500'\n },\n rss: {\n icon: 'M24,36c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4s4-1.8,4-4C28,37.8,26.2,36,24,36z M23,18 c-1.1,0-2,0.9-2,2s0.9,2,2,2c10.5,0,19,8.5,19,19c0,1.1,0.9,2,2,2s2-0.9,2-2C46,28.3,35.7,18,23,18z M23,27c-1.1,0-2,0.9-2,2 s0.9,2,2,2c5.5,0,10,4.5,10,10c0,1.1,0.9,2,2,2s2-0.9,2-2C37,33.3,30.7,27,23,27z',\n mask: 'M0,0v64h64V0H0z M24,44c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4s4,1.8,4,4C28,42.2,26.2,44,24,44z M35,43 c-1.1,0-2-0.9-2-2c0-5.5-4.5-10-10-10c-1.1,0-2-0.9-2-2s0.9-2,2-2c7.7,0,14,6.3,14,14C37,42.1,36.1,43,35,43z M44,43 c-1.1,0-2-0.9-2-2c0-10.5-8.5-19-19-19c-1.1,0-2-0.9-2-2s0.9-2,2-2c12.7,0,23,10.3,23,23C46,42.1,45.1,43,44,43z',\n color: '#EF8733'\n },\n sharethis: {\n icon: 'M28.3875,32.0001C28.3875,32.0843 28.3683,32.1632 28.3633,32.2471L37.1647,36.6464C37.9182,36.0083 38.8823,35.61 39.9474,35.61C42.3418,35.6105 44.2821,37.5509 44.2821,39.945C44.2821,42.3418 42.3417,44.2821 39.9474,44.2821C37.551,44.2821 35.6127,42.3417 35.6127,39.945C35.6127,39.8587 35.6319,39.7816 35.6367,39.698L26.8353,35.2984C26.0795,35.9341 25.1177,36.3324 24.0526,36.3324C21.6584,36.3324 19.7179,34.3941 19.7179,32.0001C19.7179,29.6036 21.6584,27.6628 24.0526,27.6628C25.1176,27.6628 26.0798,28.0635 26.8353,28.6992L35.6367,24.2997C35.6319,24.2156 35.6127,24.1365 35.6127,24.0502C35.6127,21.6584 37.551,19.7179 39.9474,19.7179C42.3418,19.7179 44.2821,21.6584 44.2821,24.0502C44.2821,26.4466 42.3417,28.3875 39.9474,28.3875C38.88,28.3875 37.9178,27.9868 37.1647,27.3487L28.3633,31.7506C28.368,31.8347 28.3875,31.9138 28.3875,32.0001Z',\n mask: 'M0,0L64,0L64,64L0,64L0,0ZM28.3875,32.0001C28.3875,32.0843 28.3683,32.1632 28.3633,32.2471L37.1647,36.6464C37.9182,36.0083 38.8823,35.61 39.9474,35.61C42.3418,35.6105 44.2821,37.5509 44.2821,39.945C44.2821,42.3418 42.3417,44.2821 39.9474,44.2821C37.551,44.2821 35.6127,42.3417 35.6127,39.945C35.6127,39.8587 35.6319,39.7816 35.6367,39.698L26.8353,35.2984C26.0795,35.9341 25.1177,36.3324 24.0526,36.3324C21.6584,36.3324 19.7179,34.3941 19.7179,32.0001C19.7179,29.6036 21.6584,27.6628 24.0526,27.6628C25.1176,27.6628 26.0798,28.0635 26.8353,28.6992L35.6367,24.2997C35.6319,24.2156 35.6127,24.1365 35.6127,24.0502C35.6127,21.6584 37.551,19.7179 39.9474,19.7179C42.3418,19.7179 44.2821,21.6584 44.2821,24.0502C44.2821,26.4466 42.3417,28.3875 39.9474,28.3875C38.88,28.3875 37.9178,27.9868 37.1647,27.3487L28.3633,31.7506C28.368,31.8347 28.3875,31.9138 28.3875,32.0001Z',\n color: '#00BF00'\n },\n slack: {\n icon: 'm 12.636243,37.559371 c 0,5.066504 8,5.066504 8,0 v -3.79988 h -4 c -2.209139,0 -4,1.701264 -4,3.79988 z m 25.28,-6.34579 c 2.209139,0 4,-1.701264 4,-3.79988 v -10.12667 c 0,-5.066504 -8,-5.066504 -8,0 v 10.12667 c -1.11e-4,2.113545 1.815256,3.821015 4.04,3.79988 z m 14.640001,-3.79988 c 0,-5.066504 -8.000001,-5.066504 -8.000001,0 v 3.79988 h 4.000001 c 2.240313,0.04257 4.080448,-1.671223 4.08,-3.79988 z m -25.240001,6.34579 c -2.209139,0 -4,1.701264 -4,3.79988 v 10.12667 c 0,5.066504 8,5.066504 8,0 v -10.12667 c 0,-2.098616 -1.790861,-3.79988 -4,-3.79988 z m 10.64,10.12667 h -4 v 3.79988 c 0,3.385567 4.308554,5.080452 6.828283,2.686784 2.51973,-2.393667 0.735584,-6.486664 -2.828283,-6.486664 z M 48.636244,33.759491 H 37.956243 c -5.324679,0.0082 -5.324679,7.591544 0,7.59975 h 10.680001 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z M 27.316243,23.613821 h -10.68 c -5.341983,-0.0082 -5.341983,7.607982 0,7.59975 h 10.68 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z m 0,-10.12667 c -5.324679,0.0082 -5.324679,7.591545 0,7.59975 h 4 v -3.79988 c 0,-2.098615 -1.790861,-3.79988 -4,-3.79988 z',\n mask: 'M 0,0 V 64 H 64 V 0 Z m 12.636243,37.559371 c 0,5.066505 8,5.066505 8,0 v -3.79988 h -4 c -2.209139,0 -4,1.701265 -4,3.79988 z m 25.28,-6.34579 c 2.209139,0 4,-1.701264 4,-3.79988 v -10.12667 c 0,-5.066504 -8,-5.066504 -8,0 v 10.12667 c -1.11e-4,2.113546 1.815256,3.821016 4.04,3.79988 z m 14.64,-3.79988 c 0,-5.066504 -8,-5.066504 -8,0 v 3.79988 h 4 c 2.240314,0.04257 4.080448,-1.671223 4.08,-3.79988 z m -25.24,6.34579 c -2.209139,0 -4,1.701265 -4,3.79988 v 10.12667 c 0,5.066505 8,5.066505 8,0 v -10.12667 c 0,-2.098615 -1.790861,-3.79988 -4,-3.79988 z m 10.64,10.12667 h -4 v 3.79988 c 0,3.385567 4.308554,5.080452 6.828283,2.686785 2.51973,-2.393667 0.735584,-6.486665 -2.828283,-6.486665 z m 10.68,-10.12667 h -10.68 c -5.324679,0.0082 -5.324679,7.591545 0,7.59975 h 10.68 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z m -21.32,-10.14567 h -10.68 c -5.341983,-0.0082 -5.341983,7.607983 0,7.59975 h 10.68 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z m 0,-10.12667 c -5.324679,0.0082 -5.324679,7.591545 0,7.59975 h 4 v -3.79988 c 0,-2.125738 -1.803765,-3.79987 -4,-3.79987 z',\n color: '#4A164A'\n },\n smugmug: {\n icon: 'M25.4,22.9c2.8,0,4.1-1.7,3.9-3.1 c-0.1-1.2-1.3-2.4-3.6-2.4c-1.9,0-3.1,1.4-3.3,2.8C22.3,21.6,23.1,23,25.4,22.9z M39.2,22.6c2.6-0.1,3.8-1.5,3.8-2.8 c0-1.5-1.4-3-3.8-2.8c-1.9,0.2-3,1.5-3.2,2.8C35.9,21.3,36.9,22.7,39.2,22.6z M40.9,28.5c-6.6,0.7-6.9,0.7-19,1 c-5.1,0-4,17.5,6.9,17.5C39.2,47,51.7,27.4,40.9,28.5z M29,43.9c-9.5,0-8.2-11.3-6.6-11.4c11.1-0.4,13.9-0.9,17.8-0.9 C44.3,31.6,36.6,43.9,29,43.9z',\n mask: 'M0,0v64h64V0H0z M36.1,19.8c0.2-1.3,1.3-2.6,3.2-2.8c2.4-0.2,3.8,1.3,3.8,2.8c0,1.3-1.2,2.6-3.8,2.8 C36.9,22.7,35.9,21.3,36.1,19.8z M22.5,20.2c0.2-1.4,1.4-2.8,3.3-2.8c2.3,0,3.5,1.1,3.6,2.4c0.2,1.5-1.1,3.1-3.9,3.1 C23.1,23,22.3,21.6,22.5,20.2z M28.8,47c-10.9,0-12-17.5-6.9-17.5c12.1-0.3,12.5-0.3,19-1C51.7,27.4,39.2,47,28.8,47z M40.3,31.6 c-3.9,0-6.8,0.5-17.8,0.9c-1.6,0.1-2.9,11.4,6.6,11.4C36.6,43.9,44.3,31.6,40.3,31.6z',\n color: '#8cca1e'\n },\n snapchat: {\n icon: 'M32.309,15.962h-0.001c-0.028,0-0.054,0-0.078,0.001l0,0c0,0-0.513,0.005-0.554,0.005c-1.32,0-5.794,0.368-7.905,5.1c-0.71,1.592-0.54,4.296-0.403,6.469c0.016,0.256,0.033,0.522,0.048,0.779c-0.109,0.06-0.309,0.136-0.622,0.136c-0.419,0-0.914-0.132-1.472-0.394c-0.148-0.069-0.319-0.104-0.507-0.104c-0.653,0-1.434,0.43-1.555,1.07c-0.088,0.461,0.119,1.134,1.601,1.719c0.134,0.053,0.294,0.104,0.464,0.158c0.612,0.194,1.538,0.488,1.789,1.08c0.13,0.306,0.078,0.701-0.154,1.172c-0.005,0.011-0.01,0.021-0.015,0.032c-0.081,0.19-2.04,4.655-6.389,5.371c-0.334,0.055-0.573,0.353-0.555,0.692c0.006,0.101,0.03,0.201,0.071,0.298c0.326,0.763,1.703,1.322,4.21,1.711c0.084,0.113,0.171,0.514,0.224,0.758c0.052,0.241,0.106,0.489,0.183,0.751c0.076,0.257,0.272,0.565,0.776,0.565c0.204,0,0.444-0.047,0.723-0.102c0.418-0.082,0.99-0.193,1.706-0.193c0.397,0,0.809,0.035,1.223,0.103c0.809,0.135,1.496,0.621,2.292,1.183c1.14,0.806,2.431,1.718,4.393,1.718c0.054,0,0.108-0.002,0.162-0.006c0.064,0.003,0.146,0.006,0.234,0.006c1.963,0,3.253-0.913,4.392-1.718c0.798-0.563,1.484-1.049,2.293-1.184c0.414-0.069,0.825-0.103,1.222-0.103c0.683,0,1.223,0.087,1.706,0.181c0.302,0.059,0.545,0.089,0.723,0.089l0.019,0h0.018c0.373,0,0.636-0.197,0.74-0.554c0.076-0.256,0.13-0.498,0.183-0.743c0.053-0.243,0.14-0.642,0.223-0.754c2.508-0.389,3.884-0.948,4.21-1.707c0.042-0.097,0.066-0.198,0.072-0.3c0.019-0.339-0.22-0.636-0.554-0.691c-4.351-0.717-6.308-5.181-6.389-5.371c-0.005-0.011-0.01-0.022-0.015-0.032c-0.232-0.471-0.284-0.865-0.154-1.172c0.251-0.592,1.176-0.885,1.788-1.079c0.171-0.054,0.332-0.106,0.465-0.158c1.085-0.428,1.629-0.954,1.617-1.564c-0.009-0.478-0.382-0.905-0.974-1.117l-0.002-0.001c-0.199-0.083-0.436-0.128-0.667-0.128c-0.158,0-0.393,0.022-0.613,0.124c-0.516,0.242-0.98,0.373-1.379,0.391c-0.265-0.012-0.439-0.079-0.537-0.134c0.013-0.22,0.027-0.447,0.042-0.685l0.006-0.092c0.137-2.174,0.307-4.881-0.403-6.474C38.117,16.33,33.633,15.962,32.309,15.962L32.309,15.962z',\n mask: 'M0,0v64h64V0H0z M47.927,39.545c-0.326,0.76-1.702,1.318-4.21,1.707c-0.083,0.113-0.17,0.511-0.223,0.754c-0.054,0.245-0.108,0.487-0.183,0.743c-0.104,0.357-0.367,0.554-0.74,0.554h-0.018l-0.019,0c-0.177,0-0.421-0.03-0.723-0.089c-0.482-0.094-1.022-0.181-1.706-0.181c-0.397,0-0.809,0.034-1.222,0.103c-0.809,0.135-1.496,0.62-2.293,1.184c-1.139,0.805-2.43,1.718-4.392,1.718c-0.088,0-0.171-0.003-0.234-0.006c-0.054,0.004-0.108,0.006-0.162,0.006c-1.962,0-3.253-0.912-4.393-1.718c-0.796-0.562-1.483-1.048-2.292-1.183c-0.414-0.069-0.826-0.103-1.223-0.103c-0.716,0-1.288,0.112-1.706,0.193c-0.278,0.055-0.519,0.102-0.723,0.102c-0.505,0-0.701-0.308-0.776-0.565c-0.077-0.262-0.131-0.51-0.183-0.751c-0.053-0.244-0.14-0.644-0.224-0.758c-2.507-0.389-3.884-0.948-4.21-1.711c-0.041-0.097-0.065-0.197-0.071-0.298c-0.019-0.338,0.22-0.637,0.555-0.692c4.349-0.716,6.308-5.181,6.389-5.371c0.005-0.011,0.01-0.021,0.015-0.032c0.232-0.471,0.284-0.866,0.154-1.172c-0.251-0.592-1.177-0.885-1.789-1.08c-0.17-0.054-0.331-0.105-0.464-0.157c-1.482-0.585-1.688-1.258-1.601-1.719c0.122-0.64,0.903-1.07,1.555-1.07c0.189,0,0.359,0.035,0.507,0.104c0.557,0.261,1.053,0.394,1.472,0.394c0.314,0,0.513-0.075,0.622-0.136c-0.015-0.257-0.032-0.523-0.048-0.779c-0.136-2.173-0.307-4.877,0.403-6.469c2.111-4.732,6.585-5.1,7.905-5.1c0.041,0,0.554-0.005,0.554-0.005c0.025-0.001,0.051-0.001,0.078-0.001h0.001c1.324,0,5.807,0.368,7.919,5.103c0.711,1.593,0.54,4.299,0.403,6.474l-0.006,0.092c-0.015,0.237-0.029,0.464-0.042,0.685c0.099,0.055,0.272,0.121,0.537,0.134c0.4-0.018,0.863-0.149,1.379-0.391c0.219-0.103,0.454-0.124,0.613-0.124c0.232,0,0.468,0.045,0.667,0.128l0.002,0.001c0.592,0.212,0.965,0.638,0.974,1.117c0.011,0.609-0.533,1.135-1.617,1.564c-0.132,0.052-0.293,0.103-0.465,0.158c-0.612,0.194-1.538,0.488-1.788,1.079c-0.13,0.306-0.079,0.701,0.154,1.172c0.005,0.011,0.01,0.021,0.015,0.032c0.081,0.189,2.038,4.654,6.389,5.371c0.334,0.055,0.573,0.353,0.555,0.691C47.993,39.347,47.969,39.448,47.927,39.545z',\n color: '#FFC91B'\n },\n soundcloud: {\n icon: 'M43.6,30c-0.6,0-1.2,0.1-1.7,0.3c-0.3-4-3.7-7.1-7.7-7.1c-1,0-2,0.2-2.8,0.5 C31.1,23.9,31,24,31,24.3v13.9c0,0.3,0.2,0.5,0.5,0.5c0,0,12.2,0,12.2,0c2.4,0,4.4-1.9,4.4-4.4C48,31.9,46,30,43.6,30z M27.2,25.1 c-0.7,0-1.2,0.5-1.2,1.1v11.3c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2V26.2C28.4,25.6,27.8,25.1,27.2,25.1z M22.2,27.8 c-0.7,0-1.2,0.5-1.2,1.1v8.5c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2V29C23.4,28.3,22.9,27.8,22.2,27.8z M17.2,30.2 c-0.7,0-1.2,0.5-1.2,1.1v4.9c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2v-4.9C18.5,30.7,17.9,30.2,17.2,30.2z',\n mask: 'M0,0v64h64V0H0z M18.5,36.3c0,0.7-0.6,1.2-1.2,1.2c-0.7,0-1.2-0.6-1.2-1.2v-4.9c0-0.6,0.6-1.1,1.2-1.1 c0.7,0,1.2,0.5,1.2,1.1V36.3z M23.4,37.5c0,0.7-0.6,1.2-1.2,1.2S21,38.2,21,37.5V29c0-0.6,0.6-1.1,1.2-1.1s1.2,0.5,1.2,1.1V37.5z M28.4,37.5c0,0.7-0.6,1.2-1.2,1.2c-0.7,0-1.2-0.6-1.2-1.2V26.2c0-0.6,0.6-1.1,1.2-1.1c0.7,0,1.2,0.5,1.2,1.1V37.5z M43.6,38.7 c0,0-12.1,0-12.2,0c-0.3,0-0.5-0.2-0.5-0.5V24.3c0-0.3,0.1-0.4,0.4-0.5c0.9-0.3,1.8-0.5,2.8-0.5c4,0,7.4,3.1,7.7,7.1 c0.5-0.2,1.1-0.3,1.7-0.3c2.4,0,4.4,2,4.4,4.4C48,36.8,46,38.7,43.6,38.7z',\n color: '#FF5700'\n },\n spotify: {\n icon: 'M32,16c-8.8,0-16,7.2-16,16c0,8.8,7.2,16,16,16c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16 M39.3,39.1c-0.3,0.5-0.9,0.6-1.4,0.3c-3.8-2.3-8.5-2.8-14.1-1.5c-0.5,0.1-1.1-0.2-1.2-0.7c-0.1-0.5,0.2-1.1,0.8-1.2 c6.1-1.4,11.3-0.8,15.5,1.8C39.5,38,39.6,38.6,39.3,39.1 M41.3,34.7c-0.4,0.6-1.1,0.8-1.7,0.4c-4.3-2.6-10.9-3.4-15.9-1.9 c-0.7,0.2-1.4-0.2-1.6-0.8c-0.2-0.7,0.2-1.4,0.8-1.6c5.8-1.8,13-0.9,18,2.1C41.5,33.4,41.7,34.1,41.3,34.7 M41.5,30.2 c-5.2-3.1-13.7-3.3-18.6-1.9c-0.8,0.2-1.6-0.2-1.9-1c-0.2-0.8,0.2-1.6,1-1.9c5.7-1.7,15-1.4,21,2.1c0.7,0.4,0.9,1.3,0.5,2.1 C43.1,30.4,42.2,30.6,41.5,30.2',\n mask: 'M39,37.7c-4.2-2.6-9.4-3.2-15.5-1.8c-0.5,0.1-0.9,0.7-0.8,1.2c0.1,0.5,0.7,0.9,1.2,0.7c5.6-1.3,10.3-0.8,14.1,1.5 c0.5,0.3,1.1,0.1,1.4-0.3C39.6,38.6,39.5,38,39,37.7z M40.9,33c-4.9-3-12.2-3.9-18-2.1c-0.7,0.2-1,0.9-0.8,1.6 c0.2,0.7,0.9,1,1.6,0.8c5.1-1.5,11.6-0.8,15.9,1.9c0.6,0.4,1.4,0.2,1.7-0.4C41.7,34.1,41.5,33.4,40.9,33z M0,0v64h64V0H0z M32,48 c-8.8,0-16-7.2-16-16c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16C48,40.8,40.8,48,32,48z M43,27.6c-5.9-3.5-15.3-3.9-21-2.1 c-0.8,0.2-1.2,1.1-1,1.9c0.2,0.8,1.1,1.2,1.9,1c4.9-1.5,13.4-1.2,18.6,1.9c0.7,0.4,1.6,0.2,2.1-0.5C43.9,29,43.7,28,43,27.6z',\n color: '#2EBD59'\n },\n squarespace: {\n icon: 'M46.2,27.6c-2.4-2.4-6.3-2.4-8.7,0l-9.8,9.8c-0.6,0.6-0.6,1.6,0,2.2c0.6,0.6,1.6,0.6,2.2,0 l9.8-9.8c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.6,9.6c1.2,1.2,3.2,1.2,4.4,0l7.5-7.5C48.6,34,48.6,30,46.2,27.6z M42.9,30.9c-0.6-0.6-1.6-0.6-2.2,0l-9.8,9.8c-1.2,1.2-3.2,1.2-4.4,0c-0.6-0.6-1.6-0.6-2.2,0c-0.6,0.6-0.6,1.6,0,2.2 c2.4,2.4,6.3,2.4,8.7,0l9.8-9.8C43.5,32.5,43.5,31.5,42.9,30.9z M39.6,21.1c-2.4-2.4-6.3-2.4-8.7,0l-9.8,9.8c-0.6,0.6-0.6,1.6,0,2.2 c0.6,0.6,1.6,0.6,2.2,0l9.8-9.8c1.2-1.2,3.2-1.2,4.4,0c0.6,0.6,1.6,0.6,2.2,0C40.2,22.7,40.2,21.7,39.6,21.1z M36.4,24.4 c-0.6-0.6-1.6-0.6-2.2,0l-9.8,9.8c-1.2,1.2-3.2,1.2-4.4,0c-1.2-1.2-1.2-3.2,0-4.4l9.6-9.6c-1.2-1.2-3.2-1.2-4.4,0l-7.5,7.5 c-2.4,2.4-2.4,6.3,0,8.7c2.4,2.4,6.3,2.4,8.7,0l9.8-9.8C37,25.9,37,25,36.4,24.4z',\n mask: 'M0,0v64h64V0H0z M39.6,21.1c0.6,0.6,0.6,1.6,0,2.2c-0.6,0.6-1.6,0.6-2.2,0c-1.2-1.2-3.2-1.2-4.4,0l-9.8,9.8 c-0.6,0.6-1.6,0.6-2.2,0c-0.6-0.6-0.6-1.6,0-2.2l9.8-9.8C33.3,18.7,37.2,18.7,39.6,21.1z M17.8,36.4c-2.4-2.4-2.4-6.3,0-8.7l7.5-7.5 c1.2-1.2,3.2-1.2,4.4,0L20,29.8c-1.2,1.2-1.2,3.2,0,4.4c1.2,1.2,3.2,1.2,4.4,0l9.8-9.8c0.6-0.6,1.6-0.6,2.2,0c0.6,0.6,0.6,1.6,0,2.2 l-9.8,9.8C24.1,38.8,20.2,38.8,17.8,36.4z M24.4,42.9c-0.6-0.6-0.6-1.6,0-2.2c0.6-0.6,1.6-0.6,2.2,0c1.2,1.2,3.2,1.2,4.4,0l9.8-9.8 c0.6-0.6,1.6-0.6,2.2,0c0.6,0.6,0.6,1.6,0,2.2l-9.8,9.8C30.7,45.3,26.8,45.3,24.4,42.9z M46.2,36.4l-7.5,7.5c-1.2,1.2-3.2,1.2-4.4,0 l9.6-9.6c1.2-1.2,1.2-3.2,0-4.4c-1.2-1.2-3.2-1.2-4.4,0l-9.8,9.8c-0.6,0.6-1.6,0.6-2.2,0c-0.6-0.6-0.6-1.6,0-2.2l9.8-9.8 c2.4-2.4,6.3-2.4,8.7,0C48.6,30,48.6,34,46.2,36.4z',\n color: '#1C1C1C'\n },\n stackoverflow: {\n icon: 'M 0,0 H 64 V 64 H 0 Z',\n mask: 'M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 37.623047 12.775391 L 47.613281 26.207031 L 44.925781 28.203125 L 34.9375 14.771484 L 37.623047 12.775391 z M 31.462891 18.119141 L 44.326172 28.832031 L 42.183594 31.404297 L 29.320312 20.691406 L 31.462891 18.119141 z M 26.533203 25.103516 L 41.708984 32.167969 L 40.294922 35.205078 L 25.121094 28.136719 L 26.533203 25.103516 z M 23.640625 32.705078 L 40.021484 36.150391 L 39.333984 39.423828 L 22.953125 35.980469 L 23.640625 32.705078 z M 15.984375 36.972656 L 19.318359 36.972656 L 19.318359 46.978516 L 42.666016 46.978516 L 42.666016 36.972656 L 46 36.972656 L 46 50.3125 L 15.984375 50.3125 L 15.984375 36.972656 z M 22.654297 40.308594 L 39.330078 40.308594 L 39.330078 43.642578 L 22.654297 43.642578 L 22.654297 40.308594 z',\n color: '#ed803d'\n },\n 't.me': telegram,\n telegram: telegram,\n tiktok: {\n icon: 'M 0,0 H 64 V 64 H 0 Z',\n mask: 'M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 33.330078 16 L 38.845703 16 C 38.841484 16.464979 38.879928 16.930827 38.960938 17.388672 L 38.962891 17.388672 C 39.347214 19.450699 40.563022 21.263117 42.324219 22.402344 C 43.560373 23.223837 45.011906 23.660664 46.496094 23.660156 L 46.496094 24.853516 C 46.499654 24.854516 46.504312 24.854771 46.507812 24.855469 L 46.507812 29.123047 C 43.760055 29.129293 41.080342 28.271577 38.847656 26.669922 L 38.847656 37.882812 C 38.835889 43.478203 34.296575 48.007827 28.701172 48.007812 C 26.63222 48.048166 24.599665 47.449168 22.884766 46.291016 C 22.767781 46.167585 22.658664 46.038312 22.548828 45.910156 C 19.166219 43.334883 17.735525 38.905122 19.021484 34.820312 C 20.351327 30.5961 24.272588 27.726928 28.701172 27.736328 C 29.158607 27.742889 29.614526 27.781926 30.066406 27.853516 L 30.054688 33.488281 C 29.612312 33.350917 29.152646 33.277637 28.689453 33.273438 C 26.564626 33.28434 24.721455 34.740631 24.216797 36.804688 C 23.712137 38.868744 24.676556 41.009904 26.556641 42 C 27.215641 42.344292 27.967447 42.505495 28.710938 42.511719 C 31.19892 42.507676 33.238354 40.539029 33.330078 38.052734 L 33.330078 16 z',\n color: '#000000'\n },\n tumblr: {\n icon: 'M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z',\n mask: 'M0,0v64h64V0H0z M35.4,47c-6.5,0.1-9-4.7-9-8v-9.8h-3v-3.9c4.6-1.6,5.6-5.7,5.9-8.1c0-0.2,0.1-0.2,0.2-0.2 c0.1,0,4.4,0,4.4,0v7.6h6v4.5h-6v9.3c0,1.3,0.5,3,2.9,3c0.8,0,1.9-0.3,2.4-0.5l1.4,4.3C40.1,46,37.6,47,35.4,47z',\n color: '#2c4762'\n },\n twitch: {\n icon: 'M40,25.6h-2.5v7.6H40V25.6z M33,25.6h-2.5v7.6H33V25.6z M20.9,18L19,23.1v20.4h7v3.8h3.8l3.8-3.8h5.7l7.6-7.6V18H20.9z M44.5,34.5L40,39h-7l-3.8,3.8V39h-5.7V20.5h21V34.5z',\n mask: 'M0,0v64h64V0H0z M47,35.8l-7.6,7.6h-5.7l-3.8,3.8H26v-3.8h-7V23.1l1.9-5.1H47V35.8z M29.2,42.8L33,39h7l4.5-4.5 v-14h-21V39h5.7V42.8z M37.5,25.6H40v7.6h-2.5V25.6z M30.5,25.6H33v7.6h-2.5V25.6z',\n color: '#6441A5'\n },\n twitter: {\n icon: 'm 48.1,22.1 c -1.223105,0.430685 -2.4,0.761371 -3.8,1 1.4,-0.8 2.4,-2.1 2.9,-3.6 -1.3,0.8 -2.7,1.3 -4.2,1.6 -1.2,-1.3 -3,-2.1 -4.8,-2.1 -3.6,0 -6.6,2.9 -6.6,6.6 0,0.5 0.1,1 0.2,1.5 -5.5,-0.3 -10.3,-2.9 -13.5,-6.9 -0.6,1 -0.9,2.1 -0.9,3.3 0,2.3 1.2,4.3 2.9,5.5 -1.1,0 -2.1,-0.3 -3,-0.8 v 0.1 c 0,3.2 2.3,5.8 5.3,6.4 -0.6,0.1 -1.1,0.2 -1.7,0.2 -0.4,0 -0.8,0 -1.2,-0.1 0.8,2.6 3.3,4.5 6.1,4.6 -2.2,1.8 -5.1,2.8 -8.2,2.8 -0.5,0 -1.1,0 -1.6,-0.1 C 18.9,44 22.4,45 26.1,45 38.2,45 44.43575,34.996634 44.67774,26.3 L 44.7,25.5 c 1.2,-1 2.5,-2.1 3.4,-3.4 z',\n mask: 'M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z',\n color: '#00aced'\n },\n upwork: {\n icon: \"M 0,0 H 64 V 64 H 0 Z\",\n mask: \"M 32 0 C 14.272 0 0 14.272 0 32 C 0 49.728 14.272 64 32 64 C 49.728 64 64 49.728 64 32 C 64 14.272 49.728 0 32 0 z M 24.9375 17.111328 L 30.537109 17.111328 C 31.637109 20.911328 33.636719 25.310938 36.136719 29.210938 C 37.736719 23.710938 41.737109 20.210938 47.037109 20.210938 C 53.137109 20.210938 58.136719 25.2125 58.136719 31.3125 C 58.136719 37.7125 53.137109 42.710938 47.037109 42.710938 C 44.037109 42.710937 41.537891 41.911719 39.337891 40.511719 L 36.9375 52.412109 L 31.236328 52.412109 L 34.736328 36.111328 C 33.236328 34.011328 31.836328 31.612109 30.736328 29.412109 L 30.736328 31.912109 C 30.736328 38.012109 25.837891 42.912109 19.837891 42.912109 C 13.837891 42.912109 8.9375 38.012109 8.9375 31.912109 L 8.9375 17.210938 L 14.337891 17.210938 L 14.337891 31.8125 C 14.337891 34.7125 16.736719 37.111328 19.636719 37.111328 C 22.536719 37.111328 24.9375 34.7125 24.9375 31.8125 L 24.9375 17.111328 z M 47.136719 25.912109 C 43.036719 25.912109 41.737891 29.9125 41.337891 32.3125 L 41.337891 32.412109 L 40.736328 34.611328 C 42.536328 36.111328 44.837109 37.111328 47.037109 37.111328 C 49.937109 37.111328 52.636328 34.611719 52.736328 31.511719 C 52.736328 28.411719 50.236719 25.912109 47.136719 25.912109 z \",\n color: '#3da800'\n },\n vevo: {\n icon: 'M43,21c-4.5,0-5.4,2.7-6.8,4.6c0,0-3.7,5.6-5.1,7.7l-3-12.3H20l5.1,20.6c1.1,3.7,4.1,3.4,4.1,3.4 c2.1,0,3.6-1.1,5-3.1L48,21C48,21,43.2,21,43,21z',\n mask: 'M0,0v64h64V0H0z M34.2,41.9c-1.4,2.1-2.9,3.1-5,3.1c0,0-3,0.2-4.1-3.4L20,21h8.1l3,12.3c1.4-2.1,5.1-7.7,5.1-7.7 c1.4-1.9,2.2-4.6,6.8-4.6c0.2,0,5,0,5,0L34.2,41.9z',\n color: '#ED1A3B'\n },\n vimeo: {\n icon: 'M47,25c-0.1,2.9-2.2,6.9-6.1,12c-4.1,5.3-7.5,8-10.4,8c-1.7,0-3.2-1.6-4.4-4.8 c-0.8-3-1.6-5.9-2.4-8.9c-0.9-3.2-1.9-4.8-2.9-4.8c-0.2,0-1,0.5-2.4,1.4L17,26c1.5-1.3,2.9-2.6,4.4-3.9c2-1.7,3.5-2.6,4.4-2.7 c2.3-0.2,3.8,1.4,4.3,4.8c0.6,3.7,1,6,1.2,6.9c0.7,3.1,1.4,4.6,2.2,4.6c0.6,0,1.6-1,2.8-3c1.3-2,1.9-3.5,2-4.5 c0.2-1.7-0.5-2.6-2-2.6c-0.7,0-1.5,0.2-2.2,0.5c1.5-4.8,4.3-7.2,8.4-7C45.7,19.1,47.2,21.1,47,25z',\n mask: 'M0,0v64h64V0H0z M40.9,37c-4.1,5.3-7.5,8-10.4,8c-1.7,0-3.2-1.6-4.4-4.8c-0.8-3-1.6-5.9-2.4-8.9 c-0.9-3.2-1.9-4.8-2.9-4.8c-0.2,0-1,0.5-2.4,1.4L17,26c1.5-1.3,2.9-2.6,4.4-3.9c2-1.7,3.5-2.6,4.4-2.7c2.3-0.2,3.8,1.4,4.3,4.8 c0.6,3.7,1,6,1.2,6.9c0.7,3.1,1.4,4.6,2.2,4.6c0.6,0,1.6-1,2.8-3c1.3-2,1.9-3.5,2-4.5c0.2-1.7-0.5-2.6-2-2.6c-0.7,0-1.5,0.2-2.2,0.5 c1.5-4.8,4.3-7.2,8.4-7c3.1,0.1,4.5,2.1,4.4,6C46.9,27.9,44.8,31.9,40.9,37z',\n color: '#1ab7ea'\n },\n vine: {\n icon: 'M45.2,31.9c-0.8,0.2-1.5,0.3-2.2,0.3c-3.8,0-6.7-2.6-6.7-7.2c0-2.3,0.9-3.4,2.1-3.4 c1.2,0,2,1.1,2,3.2c0,1.2-0.3,2.5-0.6,3.3c0,0,1.2,2,4.4,1.4c0.7-1.5,1-3.5,1-5.2c0-4.6-2.3-7.3-6.6-7.3c-4.4,0-7,3.4-7,7.9 c0,4.4,2.1,8.2,5.5,10c-1.4,2.9-3.3,5.4-5.2,7.3c-3.5-4.2-6.6-9.8-7.9-20.7h-5.1c2.4,18.1,9.4,23.9,11.2,25c1.1,0.6,2,0.6,2.9,0.1 c1.5-0.9,6-5.4,8.6-10.7c1.1,0,2.3-0.1,3.6-0.4V31.9z',\n mask: 'M0,0v64h64V0H0z M38.4,21.5c-1.2,0-2.1,1.2-2.1,3.4c0,4.6,2.9,7.2,6.7,7.2c0.7,0,1.4-0.1,2.2-0.3v3.6 c-1.3,0.3-2.5,0.4-3.6,0.4c-2.5,5.3-7,9.8-8.6,10.7c-1,0.5-1.9,0.6-2.9-0.1c-1.9-1.1-8.9-6.9-11.2-25H24c1.3,10.9,4.4,16.5,7.9,20.7 c1.9-1.9,3.7-4.4,5.2-7.3c-3.4-1.7-5.5-5.5-5.5-10c0-4.5,2.6-7.9,7-7.9c4.3,0,6.6,2.7,6.6,7.3c0,1.7-0.4,3.7-1,5.2 c-3.2,0.6-4.4-1.4-4.4-1.4c0.2-0.8,0.6-2.1,0.6-3.3C40.3,22.6,39.5,21.5,38.4,21.5z',\n color: '#00BF8F'\n },\n vk: {\n icon: 'M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z',\n mask: 'M0,0v64h64V0H0z M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z',\n color: '#45668e'\n },\n vsco: {\n icon: 'M32,16c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C34.5,17.1,33.4,16,32,16z M18.5,29.5c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C20.9,30.6,19.8,29.5,18.5,29.5z M25.2,22.8c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C27.7,23.9,26.6,22.8,25.2,22.8z M38.7,27.6c1.4,0,2.5-1.1,2.5-2.5c0-1.4-1.1-2.5-2.5-2.5c-1.4,0-2.5,1.1-2.5,2.5 C36.2,26.5,37.3,27.6,38.7,27.6z M25.1,36.2c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C27.6,37.3,26.5,36.2,25.1,36.2z M31.9,34.4c1.4,0,2.5-1.1,2.5-2.5c0-1.4-1.1-2.5-2.5-2.5c-1.4,0-2.5,1.1-2.5,2.5 C29.5,33.3,30.6,34.4,31.9,34.4z M45.5,29.5c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C48,30.6,46.9,29.5,45.5,29.5z M32,43.1c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C34.5,44.2,33.4,43.1,32,43.1z M38.8,36.3c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c1.4,0,2.5-1.1,2.5-2.5 C41.2,37.4,40.1,36.3,38.8,36.3z',\n mask: 'M0,0v64h64V0H0z M18.5,34.5c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C20.9,33.4,19.8,34.5,18.5,34.5z M25.1,41.1c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C27.6,40,26.5,41.1,25.1,41.1z M25.2,27.7c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C27.7,26.6,26.6,27.7,25.2,27.7z M32,48c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C34.5,46.9,33.4,48,32,48z M29.5,31.9c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5c0,1.4-1.1,2.5-2.5,2.5 C30.6,34.4,29.5,33.3,29.5,31.9z M32,20.9c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C34.5,19.8,33.4,20.9,32,20.9z M38.7,22.7c1.4,0,2.5,1.1,2.5,2.5c0,1.4-1.1,2.5-2.5,2.5c-1.4,0-2.5-1.1-2.5-2.5 C36.2,23.8,37.3,22.7,38.7,22.7z M38.8,41.2c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C41.2,40.1,40.1,41.2,38.8,41.2z M45.5,34.5c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C48,33.4,46.9,34.5,45.5,34.5z',\n color: '#83878A'\n },\n wechat: {\n icon: 'M48.769,46.072c2.85-2.068,4.672-5.121,4.672-8.518c0-6.219-6.053-11.262-13.518-11.262s-13.519,5.043-13.519,11.262 c0,6.221,6.054,11.266,13.519,11.266c1.541,0,3.031-0.219,4.412-0.617l0.396-0.061c0.262,0,0.494,0.08,0.717,0.209l2.963,1.709 l0.26,0.084c0.248,0,0.449-0.201,0.449-0.451l-0.074-0.328l-0.607-2.275l-0.047-0.285C48.392,46.5,48.54,46.232,48.769,46.072z M24.782,13.854c-8.959,0-16.222,6.053-16.222,13.519c0,4.072,2.185,7.74,5.604,10.219c0.274,0.193,0.455,0.514,0.455,0.879 l-0.057,0.344l-0.731,2.729l-0.088,0.395c0,0.299,0.243,0.541,0.541,0.541l0.313-0.102l3.551-2.051 c0.266-0.152,0.548-0.248,0.86-0.248l0.477,0.07c1.657,0.479,3.445,0.742,5.296,0.742l0.891-0.021 c-0.352-1.055-0.544-2.166-0.544-3.311c0-6.811,6.623-12.33,14.794-12.33l0.881,0.022C39.581,18.794,32.874,13.854,24.782,13.854z M35.415,35.754c-0.994,0-1.801-0.807-1.801-1.803s0.807-1.803,1.801-1.803c0.998,0,1.803,0.807,1.803,1.803 S36.413,35.754,35.415,35.754z M44.431,35.754c-0.998,0-1.805-0.807-1.805-1.803s0.807-1.803,1.805-1.803 c0.992,0,1.799,0.807,1.799,1.803S45.423,35.754,44.431,35.754z M19.375,25.21c-1.195,0-2.162-0.969-2.162-2.162 c0-1.194,0.967-2.163,2.162-2.163c1.194,0,2.163,0.969,2.163,2.163C21.538,24.241,20.569,25.21,19.375,25.21z M30.188,25.21 c-1.196,0-2.162-0.969-2.162-2.162c0-1.194,0.966-2.163,2.162-2.163c1.195,0,2.162,0.969,2.162,2.163 C32.351,24.241,31.384,25.21,30.188,25.21z',\n mask: 'M65.6,65.6H-1.6V-1.6H65.6V65.6z M49.738,46.043c2.846-2.061,4.662-5.107,4.662-8.498 c0-6.207-6.043-11.244-13.492-11.244c-7.453,0-13.494,5.037-13.494,11.244c0,6.213,6.041,11.246,13.494,11.246 c1.537,0,3.025-0.221,4.402-0.615l0.395-0.059c0.262,0,0.498,0.078,0.717,0.207l2.955,1.707l0.26,0.082 c0.252,0,0.451-0.203,0.451-0.449l-0.074-0.328l-0.605-2.271l-0.047-0.287C49.361,46.477,49.508,46.211,49.738,46.043L49.738,46.043 z M25.793,13.887C16.85,13.887,9.6,19.93,9.6,27.383c0,4.066,2.182,7.723,5.596,10.197c0.275,0.195,0.453,0.518,0.453,0.879 l-0.055,0.344l-0.732,2.725l-0.086,0.393c0,0.301,0.24,0.541,0.539,0.541l0.311-0.1l3.545-2.049c0.27-0.152,0.551-0.248,0.861-0.248 l0.475,0.068c1.654,0.479,3.439,0.742,5.287,0.742l0.891-0.021c-0.354-1.053-0.543-2.16-0.543-3.309 c0-6.793,6.611-12.305,14.768-12.305l0.879,0.021C40.564,18.818,33.871,13.887,25.793,13.887z M36.408,35.746 c-0.996,0-1.799-0.805-1.799-1.799c0-0.992,0.803-1.799,1.799-1.799s1.799,0.807,1.799,1.799 C38.207,34.941,37.404,35.746,36.408,35.746z M45.404,35.746c-0.996,0-1.799-0.805-1.799-1.799c0-0.992,0.803-1.799,1.799-1.799 s1.799,0.807,1.799,1.799C47.203,34.941,46.4,35.746,45.404,35.746z M20.395,25.221c-1.189,0-2.158-0.965-2.158-2.158 s0.969-2.158,2.158-2.158c1.193,0,2.162,0.965,2.162,2.158S21.588,25.221,20.395,25.221z M31.191,25.221 c-1.193,0-2.158-0.965-2.158-2.158s0.965-2.158,2.158-2.158s2.158,0.965,2.158,2.158S32.385,25.221,31.191,25.221z',\n color: '#00c80f'\n },\n whatsapp: {\n icon: 'M 48 31.589844 C 48 40.195312 40.96875 47.175781 32.289062 47.175781 C 29.535156 47.175781 26.949219 46.472656 24.695312 45.234375 L 16 48 L 18.835938 39.636719 C 17.40625 37.289062 16.582031 34.53125 16.582031 31.589844 C 16.582031 22.980469 23.613281 16 32.289062 16 C 40.96875 16 48 22.980469 48 31.589844 Z M 32.289062 18.484375 C 25.007812 18.484375 19.082031 24.363281 19.082031 31.589844 C 19.082031 34.457031 20.019531 37.109375 21.597656 39.269531 L 19.949219 44.136719 L 25.023438 42.527344 C 27.109375 43.894531 29.609375 44.691406 32.292969 44.691406 C 39.574219 44.691406 45.5 38.816406 45.5 31.589844 C 45.5 24.363281 39.574219 18.484375 32.289062 18.484375 Z M 40.222656 35.179688 C 40.125 35.019531 39.871094 34.921875 39.484375 34.730469 C 39.101562 34.542969 37.207031 33.617188 36.855469 33.488281 C 36.5 33.363281 36.242188 33.296875 35.988281 33.679688 C 35.730469 34.0625 34.992188 34.921875 34.769531 35.179688 C 34.542969 35.433594 34.320312 35.464844 33.933594 35.273438 C 33.546875 35.082031 32.308594 34.679688 30.835938 33.378906 C 29.691406 32.367188 28.917969 31.117188 28.695312 30.734375 C 28.472656 30.351562 28.671875 30.144531 28.863281 29.953125 C 29.039062 29.78125 29.25 29.507812 29.441406 29.285156 C 29.636719 29.0625 29.699219 28.902344 29.828125 28.648438 C 29.957031 28.390625 29.890625 28.167969 29.792969 27.976562 C 29.699219 27.785156 28.925781 25.90625 28.605469 25.140625 C 28.285156 24.375 27.964844 24.503906 27.742188 24.503906 C 27.515625 24.503906 27.257812 24.472656 27.003906 24.472656 C 26.746094 24.472656 26.328125 24.566406 25.976562 24.949219 C 25.621094 25.332031 24.628906 26.257812 24.628906 28.136719 C 24.628906 30.015625 26.007812 31.832031 26.199219 32.085938 C 26.394531 32.34375 28.863281 36.324219 32.777344 37.855469 C 36.691406 39.386719 36.691406 38.875 37.398438 38.8125 C 38.105469 38.746094 39.675781 37.886719 40 36.996094 C 40.320312 36.101562 40.320312 35.335938 40.222656 35.179688 Z M 40.222656 35.179688',\n mask: 'M0,0v64h64V0H0z M 48 31.589844 C 48 40.195312 40.96875 47.175781 32.289062 47.175781 C 29.535156 47.175781 26.949219 46.472656 24.695312 45.234375 L 16 48 L 18.835938 39.636719 C 17.40625 37.289062 16.582031 34.53125 16.582031 31.589844 C 16.582031 22.980469 23.613281 16 32.289062 16 C 40.96875 16 48 22.980469 48 31.589844 Z M 32.289062 18.484375 C 25.007812 18.484375 19.082031 24.363281 19.082031 31.589844 C 19.082031 34.457031 20.019531 37.109375 21.597656 39.269531 L 19.949219 44.136719 L 25.023438 42.527344 C 27.109375 43.894531 29.609375 44.691406 32.292969 44.691406 C 39.574219 44.691406 45.5 38.816406 45.5 31.589844 C 45.5 24.363281 39.574219 18.484375 32.289062 18.484375 Z M 40.222656 35.179688 C 40.125 35.019531 39.871094 34.921875 39.484375 34.730469 C 39.101562 34.542969 37.207031 33.617188 36.855469 33.488281 C 36.5 33.363281 36.242188 33.296875 35.988281 33.679688 C 35.730469 34.0625 34.992188 34.921875 34.769531 35.179688 C 34.542969 35.433594 34.320312 35.464844 33.933594 35.273438 C 33.546875 35.082031 32.308594 34.679688 30.835938 33.378906 C 29.691406 32.367188 28.917969 31.117188 28.695312 30.734375 C 28.472656 30.351562 28.671875 30.144531 28.863281 29.953125 C 29.039062 29.78125 29.25 29.507812 29.441406 29.285156 C 29.636719 29.0625 29.699219 28.902344 29.828125 28.648438 C 29.957031 28.390625 29.890625 28.167969 29.792969 27.976562 C 29.699219 27.785156 28.925781 25.90625 28.605469 25.140625 C 28.285156 24.375 27.964844 24.503906 27.742188 24.503906 C 27.515625 24.503906 27.257812 24.472656 27.003906 24.472656 C 26.746094 24.472656 26.328125 24.566406 25.976562 24.949219 C 25.621094 25.332031 24.628906 26.257812 24.628906 28.136719 C 24.628906 30.015625 26.007812 31.832031 26.199219 32.085938 C 26.394531 32.34375 28.863281 36.324219 32.777344 37.855469 C 36.691406 39.386719 36.691406 38.875 37.398438 38.8125 C 38.105469 38.746094 39.675781 37.886719 40 36.996094 C 40.320312 36.101562 40.320312 35.335938 40.222656 35.179688 Z M 40.222656 35.179688',\n color: '#25D366'\n },\n yelp: {\n icon: 'M29.5,35.7c0.5-0.1,0.9-0.6,0.9-1.2c0-0.6-0.3-1.2-0.8-1.4c0,0-1.5-0.6-1.5-0.6 c-5-2.1-5.2-2.1-5.5-2.1c-0.4,0-0.7,0.2-1,0.6c-0.5,0.8-0.7,3.3-0.5,5c0.1,0.6,0.2,1,0.3,1.3c0.2,0.4,0.5,0.6,0.9,0.6 c0.2,0,0.4,0,5.1-1.5C27.5,36.4,29.5,35.7,29.5,35.7z M32.2,37.6c-0.6-0.2-1.2-0.1-1.5,0.4c0,0-1,1.2-1,1.2 c-3.5,4.1-3.7,4.3-3.7,4.5c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.2,0.1,0.4,0.3,0.6c0.8,1,4.7,2.4,6,2.2c0.4-0.1,0.7-0.3,0.9-0.7 C33,46.1,33,45.9,33,41c0,0,0-2.2,0-2.2C33.1,38.3,32.7,37.8,32.2,37.6z M32.3,16.8c-0.1-0.4-0.4-0.7-0.9-0.8 c-1.3-0.3-6.5,1.1-7.5,2.1c-0.3,0.3-0.4,0.7-0.3,1.1c0.2,0.3,6.5,10.4,6.5,10.4c0.9,1.5,1.7,1.3,2,1.2c0.3-0.1,1-0.3,0.9-2.1 C33,26.6,32.4,17.3,32.3,16.8z M36.9,33.4C36.9,33.4,36.8,33.5,36.9,33.4c0.2-0.1,0.7-0.2,1.5-0.4c5.3-1.3,5.5-1.3,5.7-1.5 c0.3-0.2,0.5-0.6,0.5-1c0,0,0,0,0,0c-0.1-1.3-2.4-4.7-3.5-5.2c-0.4-0.2-0.8-0.2-1.1,0c-0.2,0.1-0.4,0.3-3.2,4.2c0,0-1.3,1.7-1.3,1.8 c-0.3,0.4-0.3,1,0,1.5C35.8,33.3,36.3,33.6,36.9,33.4z M44.4,38.6c-0.2-0.1-0.3-0.2-5-1.7c0,0-2-0.7-2.1-0.7c-0.5-0.2-1.1,0-1.4,0.5 c-0.4,0.5-0.5,1.1-0.1,1.6l0.8,1.3c2.8,4.5,3,4.8,3.2,5c0.3,0.2,0.7,0.3,1.1,0.1c1.2-0.5,3.7-3.7,3.9-5 C44.8,39.2,44.7,38.8,44.4,38.6z',\n mask: 'M0,0v64h64V0H0z M22.4,37.9c-0.4,0-0.7-0.2-0.9-0.6c-0.1-0.3-0.2-0.7-0.3-1.3c-0.2-1.7,0-4.2,0.5-5 c0.2-0.4,0.6-0.6,1-0.6c0.3,0,0.5,0.1,5.5,2.1c0,0,1.5,0.6,1.5,0.6c0.5,0.2,0.9,0.7,0.8,1.4c0,0.6-0.4,1.1-0.9,1.2 c0,0-2.1,0.7-2.1,0.7C22.8,37.9,22.7,37.9,22.4,37.9z M33,41c0,4.9,0,5-0.1,5.3c-0.1,0.4-0.4,0.6-0.9,0.7c-1.2,0.2-5.1-1.2-6-2.2 c-0.2-0.2-0.3-0.4-0.3-0.6c0-0.2,0-0.3,0.1-0.4c0.1-0.2,0.2-0.4,3.7-4.5c0,0,1-1.2,1-1.2c0.3-0.4,1-0.6,1.5-0.4 c0.6,0.2,0.9,0.7,0.9,1.2C33,38.8,33,41,33,41z M32.2,30.8c-0.3,0.1-1,0.3-2-1.2c0,0-6.4-10.1-6.5-10.4c-0.1-0.3,0-0.7,0.3-1.1 c1-1,6.1-2.4,7.5-2.1c0.4,0.1,0.7,0.4,0.9,0.8c0.1,0.4,0.7,9.8,0.8,11.9C33.2,30.5,32.4,30.7,32.2,30.8z M35.4,31.3 c0,0,1.3-1.8,1.3-1.8c2.8-3.9,3-4.1,3.2-4.2c0.3-0.2,0.7-0.2,1.1,0c1.1,0.5,3.4,3.9,3.5,5.2c0,0,0,0,0,0c0,0.4-0.1,0.8-0.5,1 c-0.2,0.1-0.4,0.2-5.7,1.5c-0.8,0.2-1.3,0.3-1.6,0.4c0,0,0,0,0,0c-0.5,0.1-1.1-0.1-1.4-0.6C35.1,32.3,35.1,31.7,35.4,31.3z M44.7,39.6c-0.2,1.3-2.7,4.5-3.9,5c-0.4,0.2-0.8,0.1-1.1-0.1c-0.2-0.2-0.4-0.5-3.2-5l-0.8-1.3c-0.3-0.5-0.3-1.1,0.1-1.6 c0.4-0.5,0.9-0.6,1.4-0.5c0,0,2.1,0.7,2.1,0.7c4.6,1.5,4.8,1.6,5,1.7C44.7,38.8,44.8,39.2,44.7,39.6z',\n color: '#B90C04'\n },\n youtube: {\n icon: 'M46.7,26c0,0-0.3-2.1-1.2-3c-1.1-1.2-2.4-1.2-3-1.3C38.3,21.4,32,21.4,32,21.4h0 c0,0-6.3,0-10.5,0.3c-0.6,0.1-1.9,0.1-3,1.3c-0.9,0.9-1.2,3-1.2,3S17,28.4,17,30.9v2.3c0,2.4,0.3,4.9,0.3,4.9s0.3,2.1,1.2,3 c1.1,1.2,2.6,1.2,3.3,1.3c2.4,0.2,10.2,0.3,10.2,0.3s6.3,0,10.5-0.3c0.6-0.1,1.9-0.1,3-1.3c0.9-0.9,1.2-3,1.2-3s0.3-2.4,0.3-4.9 v-2.3C47,28.4,46.7,26,46.7,26z M28.9,35.9l0-8.4l8.1,4.2L28.9,35.9z',\n mask: 'M0,0v64h64V0H0z M47,33.1c0,2.4-0.3,4.9-0.3,4.9s-0.3,2.1-1.2,3c-1.1,1.2-2.4,1.2-3,1.3 C38.3,42.5,32,42.6,32,42.6s-7.8-0.1-10.2-0.3c-0.7-0.1-2.2-0.1-3.3-1.3c-0.9-0.9-1.2-3-1.2-3S17,35.6,17,33.1v-2.3 c0-2.4,0.3-4.9,0.3-4.9s0.3-2.1,1.2-3c1.1-1.2,2.4-1.2,3-1.3c4.2-0.3,10.5-0.3,10.5-0.3h0c0,0,6.3,0,10.5,0.3c0.6,0.1,1.9,0.1,3,1.3 c0.9,0.9,1.2,3,1.2,3s0.3,2.4,0.3,4.9V33.1z M28.9,35.9l8.1-4.2l-8.1-4.2L28.9,35.9z',\n color: '#ff3333'\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styles = require(\"./styles.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction Background(_ref) {\n var networkKey = _ref.networkKey,\n props = _objectWithoutProperties(_ref, [\"networkKey\"]);\n\n // eslint-disable-line react/prop-types\n return _react.default.createElement(\"g\", _extends({}, props, {\n className: \"social-svg-background\",\n style: _styles.socialSvgContent\n }), _react.default.createElement(\"circle\", {\n cx: \"32\",\n cy: \"32\",\n r: \"31\"\n }));\n}\n\nvar _default = Background;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _networks = require(\"./networks.js\");\n\nvar _styles = require(\"./styles.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getStyle(_ref) {\n var fgColor = _ref.fgColor;\n return _objectSpread({}, _styles.socialSvgContent, {\n fill: fgColor || 'transparent'\n });\n}\n\nfunction Icon(_ref2) {\n var fgColor = _ref2.fgColor,\n networkKey = _ref2.networkKey,\n props = _objectWithoutProperties(_ref2, [\"fgColor\", \"networkKey\"]);\n\n return _react.default.createElement(\"g\", _extends({}, props, {\n className: \"social-svg-icon\",\n style: getStyle({\n fgColor: fgColor\n })\n }), _react.default.createElement(\"path\", {\n d: (0, _networks.iconFor)(networkKey)\n }));\n}\n\nIcon.propTypes = {\n fgColor: _propTypes.default.string,\n networkKey: _propTypes.default.string.isRequired\n};\nvar _default = Icon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _networks = require(\"./networks.js\");\n\nvar _styles = require(\"./styles.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getStyle(_ref) {\n var bgColor = _ref.bgColor,\n networkKey = _ref.networkKey;\n return _objectSpread({}, _styles.socialSvgMask, {\n fill: bgColor || (0, _networks.colorFor)(networkKey)\n });\n}\n\nfunction Mask(_ref2) {\n var bgColor = _ref2.bgColor,\n networkKey = _ref2.networkKey,\n rest = _objectWithoutProperties(_ref2, [\"bgColor\", \"networkKey\"]);\n\n return _react.default.createElement(\"g\", _extends({}, rest, {\n className: \"social-svg-mask\",\n style: getStyle({\n bgColor: bgColor,\n networkKey: networkKey\n })\n }), _react.default.createElement(\"path\", {\n d: (0, _networks.maskFor)(networkKey)\n }));\n}\n\nMask.propTypes = {\n bgColor: _propTypes.default.string,\n networkKey: _propTypes.default.string.isRequired\n};\nvar _default = Mask;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.keyTo = keyTo;\nexports.iconFor = iconFor;\nexports.maskFor = maskFor;\nexports.colorFor = colorFor;\nexports.keyFor = keyFor;\nexports.keysFor = keysFor;\nexports.KEYS = exports.DEFAULT_KEY = void 0;\n\nvar _networksDb = _interopRequireDefault(require(\"./_networks-db.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEFAULT_KEY = 'sharethis';\nexports.DEFAULT_KEY = DEFAULT_KEY;\nvar KEYS = Object.keys(_networksDb.default);\nexports.KEYS = KEYS;\n\nvar sortLongestFirst = function sortLongestFirst(arr) {\n return arr.sort(function (pre, post) {\n return post.length - pre.length;\n });\n};\n\nvar KEYS_REGEX = new RegExp('(?:https?:\\\\/\\\\/(?:[a-z0-9-]*.)?)?(' + sortLongestFirst(KEYS).join('|') + ').*');\n\nfunction keyTo(key, _ref) {\n var icon = _ref.icon,\n mask = _ref.mask,\n color = _ref.color;\n _networksDb.default[key] = {\n icon: icon,\n mask: mask,\n color: color\n };\n}\n\nfunction iconFor(key) {\n return _networksDb.default[key] ? _networksDb.default[key].icon : null;\n}\n\nfunction maskFor(key) {\n return _networksDb.default[key] ? _networksDb.default[key].mask : null;\n}\n\nfunction colorFor(key) {\n return _networksDb.default[key] ? _networksDb.default[key].color : null;\n}\n\nfunction keyFor(url) {\n if (!url) {\n return DEFAULT_KEY;\n }\n\n var key = url.replace(KEYS_REGEX, '$1');\n return key === url ? DEFAULT_KEY : key;\n}\n\nfunction keysFor(urls) {\n if (!urls || !Array.isArray(urls) || urls.length === 0) {\n return [];\n }\n\n return urls.map(keyFor);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"keyFor\", {\n enumerable: true,\n get: function get() {\n return _networks.keyFor;\n }\n});\nexports.SocialIcon = void 0;\n\nvar _socialIcon = _interopRequireDefault(require(\"./social-icon.js\"));\n\nvar _networks = require(\"./networks\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SocialIcon = _socialIcon.default;\nexports.SocialIcon = SocialIcon;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _background = _interopRequireDefault(require(\"./background.js\"));\n\nvar _icon = _interopRequireDefault(require(\"./icon.js\"));\n\nvar _mask = _interopRequireDefault(require(\"./mask.js\"));\n\nvar _networks = require(\"./networks.js\");\n\nvar _styles = require(\"./styles.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction getNetworkKey(props) {\n return props.network || (0, _networks.keyFor)(props.url);\n}\n\nfunction SocialIcon(props) {\n var url = props.url,\n network = props.network,\n bgColor = props.bgColor,\n fgColor = props.fgColor,\n className = props.className,\n label = props.label,\n children = props.children,\n defaultSVG = props.defaultSVG,\n style = props.style,\n rest = _objectWithoutProperties(props, [\"url\", \"network\", \"bgColor\", \"fgColor\", \"className\", \"label\", \"children\", \"defaultSVG\", \"style\"]);\n\n if (_typeof(defaultSVG) === 'object' && defaultSVG !== null) {\n (0, _networks.keyTo)(_networks.DEFAULT_KEY, defaultSVG);\n }\n\n var networkKey = getNetworkKey({\n url: url,\n network: network\n });\n return _react.default.createElement(\"a\", _extends({}, rest, {\n href: url,\n className: 'social-icon' + (className ? ' ' + className : ''),\n style: _objectSpread({}, _styles.socialIcon, style),\n \"aria-label\": label || networkKey\n }), _react.default.createElement(\"div\", {\n className: \"social-container\",\n style: _styles.socialContainer\n }, _react.default.createElement(\"svg\", {\n className: \"social-svg\",\n style: _styles.socialSvg,\n viewBox: \"0 0 64 64\"\n }, _react.default.createElement(_background.default, null), _react.default.createElement(_icon.default, {\n networkKey: networkKey,\n fgColor: fgColor\n }), _react.default.createElement(_mask.default, {\n networkKey: networkKey,\n bgColor: bgColor\n }))), children);\n}\n\nSocialIcon.propTypes = {\n className: _propTypes.default.string,\n bgColor: _propTypes.default.string,\n fgColor: _propTypes.default.string,\n label: _propTypes.default.string,\n network: _propTypes.default.string,\n url: _propTypes.default.string,\n defaultSVG: _propTypes.default.exact({\n icon: _propTypes.default.string,\n mask: _propTypes.default.string,\n color: _propTypes.default.string\n }),\n style: _propTypes.default.PropTypes.object,\n children: _propTypes.default.node\n};\nvar _default = SocialIcon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.socialSvgMask = exports.socialSvgContent = exports.socialSvg = exports.socialContainer = exports.socialIcon = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar socialIcon = {\n display: 'inline-block',\n width: '50px',\n height: '50px',\n position: 'relative',\n overflow: 'hidden',\n verticalAlign: 'middle'\n};\nexports.socialIcon = socialIcon;\nvar socialContainer = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%'\n};\nexports.socialContainer = socialContainer;\nvar socialSvg = {\n borderRadius: '50%',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n fillRule: 'evenodd'\n};\nexports.socialSvg = socialSvg;\nvar socialSvgContent = {\n msTransition: 'fill 170ms ease-in-out',\n OTransition: 'fill 170ms ease-in-out',\n MozTransition: 'fill 170ms ease-in-out',\n WebkitTransition: 'fill 170ms ease-in-out',\n transition: 'fill 170ms ease-in-out',\n fill: 'transparent'\n};\nexports.socialSvgContent = socialSvgContent;\n\nvar socialSvgMask = _objectSpread({}, socialSvgContent, {\n fill: '#0f0b0b'\n});\n\nexports.socialSvgMask = socialSvgMask;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var map = {\n\t\"./savitargreenhouses.png\": 849,\n\t\"./telecomarea.png\": 945\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 519;","var map = {\n\t\"./agco.jpg\": 543,\n\t\"./angular.svg\": 100,\n\t\"./background.jpg\": 659,\n\t\"./bg_lotus.svg\": 474,\n\t\"./biron.jpg\": 135,\n\t\"./cplus.svg\": 454,\n\t\"./db.svg\": 778,\n\t\"./gemstelecom.jpg\": 83,\n\t\"./js.svg\": 433,\n\t\"./left-arrow.svg\": 866,\n\t\"./logo.svg\": 522,\n\t\"./me.jpg\": 733,\n\t\"./net.svg\": 703,\n\t\"./net_nobg.svg\": 473,\n\t\"./nextjs.svg\": 603,\n\t\"./node-js.svg\": 331,\n\t\"./react.svg\": 450,\n\t\"./right-arrow.svg\": 303,\n\t\"./routeworthy.jpg\": 386,\n\t\"./vuejs.svg\": 291,\n\t\"./websocket.svg\": 9,\n\t\"./world-bg.svg\": 542\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 459;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"627756db\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"client-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclient_app\"] = self[\"webpackChunkclient_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nconst MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n const parent = useVisualElementContext();\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceId: presenceContext ? presenceContext.id : undefined,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(() => {\n visualElement && visualElement.render();\n });\n useEffect(() => {\n if (visualElement && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useIsomorphicLayoutEffect(() => () => visualElement && visualElement.notify(\"Unmount\"), []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\n\nconst variantProps = [\n \"initial\",\n \"animate\",\n \"exit\",\n \"whileHover\",\n \"whileDrag\",\n \"whileTap\",\n \"whileFocus\",\n \"whileInView\",\n];\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","const createDefinition = (propNames) => ({\n isEnabled: (props) => propNames.some((name) => !!props[name]),\n});\nconst featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\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([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\n\nexport { featureDefinitions };\n","import { useRef } from 'react';\n\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 */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nlet id = 1;\nfunction useProjectionId() {\n return useConstant(() => {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import React__default from 'react';\n\nclass VisualElementHandler extends React__default.Component {\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n getSnapshotBeforeUpdate() {\n const { visualElement, props } = this.props;\n if (visualElement)\n visualElement.setProps(props);\n return null;\n }\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\n\nexport { VisualElementHandler };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\n\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 */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, projectionNodeConstructor, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n let features = null;\n const context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n const projectionId = isStatic ? undefined : useProjectionId();\n /**\n *\n */\n const visualState = useVisualState(props, isStatic);\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, configAndProps, 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 const lazyStrictMode = useContext(LazyContext).strict;\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (context.visualElement) {\n features = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, lazyStrictMode, preloadedFeatures, projectionId, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor, initialLayoutGroupConfig);\n }\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 return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: configAndProps },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement))));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { loadFeatures };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\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 };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\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 */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\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 const 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: (_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 return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\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 */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\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 }\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 return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => !!(value === null || value === void 0 ? void 0 : value.getVelocity);\n\nexport { isMotionValue };\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst sortTransformProps = (a, b) => transformPropOrder.indexOf(a) - transformPropOrder.indexOf(b);\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 */\nfunction buildTransform({ transform, transformKeys, }, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Loop over each transform and build them into transformString\n for (const key of transformKeys) {\n transformString += `${translateAlias[key] || key}(${transform[key]}) `;\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\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 if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType('deg');\nconst percent = createUnitType('%');\nconst px = createUnitType('px');\nconst vh = createUnitType('vh');\nconst vw = createUnitType('vw');\nconst progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { number } from 'style-value-types';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.mjs';\n\nconst 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,\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};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformKeys, transformOrigin } = state;\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let 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 for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","const animationProps = [\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n];\nconst tapProps = [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"];\nconst panProps = [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"];\nconst inViewProps = [\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n];\n/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"layoutScroll\",\n ...inViewProps,\n ...tapProps,\n ...animationProps,\n ...panProps,\n]);\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 */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(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 */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : 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 */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst 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 */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\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 const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\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 if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\n\nfunction useSVGProps(props, visualState) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, projectionId, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = {\n ...filteredProps,\n ...visualProps,\n ref,\n };\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const newValues = scrapeMotionValuesFromProps$1(props);\n for (const key in props) {\n if (isMotionValue(props[key])) {\n const targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst 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 };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\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 */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props);\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\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 buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","var AnimationType;\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[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\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 */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(() => {\n const element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","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 return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n const hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return (event) => {\n const isMouseEvent = event instanceof MouseEvent;\n const isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nconst defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0];\n const point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType = \"page\") {\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nconst wrapHandler = (handler, shouldFilterPrimaryPointer = false) => {\n const listener = (event) => handler(event, extractEventInfo(event));\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nconst 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};\nconst touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nconst supportsPointerEvents = () => isBrowser && window.onpointerdown === null;\nconst supportsTouchEvents = () => isBrowser && window.ontouchstart === null;\nconst supportsMouseEvents = () => isBrowser && window.onmousedown === null;\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\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 const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return (event, info) => {\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.Hover, isActive);\n }\n callback && callback(event, info);\n };\n}\nfunction useHoverGesture({ onHoverStart, onHoverEnd, whileHover, visualElement, }) {\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\n","/**\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 */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","const warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport({ visualElement, whileInView, onViewportEnter, onViewportLeave, viewport = {}, }) {\n const state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n let shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n const useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, { root, margin: rootMargin, amount = \"some\", once }) {\n useEffect(() => {\n if (!shouldObserve || !visualElement.current)\n return;\n const options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const intersectionCallback = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const props = visualElement.getProps();\n const callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(visualElement.current, options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, { fallback = true }) {\n useEffect(() => {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(() => {\n state.hasEnteredView = true;\n const { onViewportEnter } = visualElement.getProps();\n onViewportEnter && onViewportEnter(null);\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, true);\n }\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","const makeRenderlessComponent = (hook) => (props) => {\n hook(props);\n return null;\n};\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture({ onTap, onTapStart, onTapCancel, whileTap, visualElement, }) {\n const hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n const isPressing = useRef(false);\n const cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n const eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n cancelPointerEndListeners.current && cancelPointerEndListeners.current();\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n removePointerEndListener();\n isPressing.current = false;\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n 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 !isNodeOrChild(visualElement.current, event.target)\n ? onTapCancel && onTapCancel(event, info)\n : onTap && onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel && onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, true);\n onTapStart && onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture({ whileFocus, visualElement, }) {\n const { animationState } = visualElement;\n const onFocus = () => {\n animationState && animationState.setActive(AnimationType.Focus, true);\n };\n const onBlur = () => {\n animationState && animationState.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\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 */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // 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 useId when released in React\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\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 */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","/******************************************************************************\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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 () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = '';\n let g = '';\n let b = '';\n let a = '';\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 }\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 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}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","function hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_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}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const 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 if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const 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: () => { },\n };\n}\n\nexport { decay };\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\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 const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n\nexport { secondsToMilliseconds };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nconst easingLookup = {\n linear,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n bounceIn,\n bounceInOut,\n bounceOut,\n};\nconst 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 const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\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 return definition;\n};\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\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 */\nconst isAnimatable = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // 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 if (typeof value === \"number\" || Array.isArray(value))\n return true;\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 return false;\n};\n\nexport { isAnimatable };\n","import { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nconst underDampedSpring = () => ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n});\nconst criticallyDampedSpring = (to) => ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst linearTween = () => ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n});\nconst keyframes = (values) => ({\n type: \"keyframes\",\n duration: 0.8,\n values,\n});\nconst 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};\nconst getDefaultTransition = (valueKey, to) => {\n let transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return { to, ...transitionFactory(to) };\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [name, value] = v.slice(0, -1).split('(');\n if (name === 'drop-shadow')\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, '');\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","import { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n 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,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import sync, { cancelSync } from 'framesync';\n\nfunction delay(callback, timeout) {\n const start = performance.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelSync.read(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n sync.read(checkElapsed, true);\n return () => cancelSync.read(checkElapsed);\n}\n\nexport { delay };\n","import { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { delay } from '../../utils/delay.mjs';\n\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 */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, ...transition }) {\n return !!Object.keys(transition).length;\n}\nlet legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions({ ease, times, yoyo, flip, loop, ...transition }) {\n const options = { ...transition };\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\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 if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\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 if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n const valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = [...options.to];\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n if (Array.isArray(options.to) && transition.duration === undefined) {\n transition.duration = 0.8;\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = {\n ...transition,\n ...getDefaultTransition(key, options.to),\n };\n }\n return {\n ...options,\n ...convertTransitionToAnimationOptions(transition),\n };\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n const valueTransition = getValueTransition(transition, key) || {};\n let origin = valueTransition.from !== undefined ? valueTransition.from : value.get();\n const isTargetAnimatable = isAnimatable(key, target);\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 }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n const 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 function start() {\n const options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete,\n onUpdate: (v) => value.set(v),\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia({ ...options, ...valueTransition })\n : animate({\n ...getPopmotionAnimationOptions(valueTransition, options, key),\n onUpdate: (v) => {\n options.onUpdate(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n options.onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n });\n }\n function set() {\n const finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n valueTransition.onUpdate && valueTransition.onUpdate(finalTarget);\n valueTransition.onComplete && valueTransition.onComplete();\n return { stop: () => { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\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 */\nfunction startAnimation(key, value, target, transition = {}) {\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start((onComplete) => {\n let controls;\n const animation = getAnimation(key, value, target, transition, onComplete);\n const delayBy = getDelayFromTransition(transition, key);\n const start = () => (controls = animation());\n let cancelDelay;\n if (delayBy) {\n cancelDelay = delay(start, secondsToMilliseconds(delayBy));\n }\n else {\n start();\n }\n return () => {\n cancelDelay && cancelDelay();\n controls && controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\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 }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^\\-?\\d*\\.?\\d+$/.test(v);\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\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 }\n else {\n for (let 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 const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nconst 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 */\nclass MotionValue {\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 constructor(init) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"7.6.12\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\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 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 this.canTrackVelocity = false;\n this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = getFrameData();\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n sync.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current) {\n this.updateSubscribers.notify(this.current);\n }\n // Update velocity subscribers\n if (this.velocityUpdateSubscribers.getSize()) {\n this.velocityUpdateSubscribers.notify(this.getVelocity());\n }\n // Update render subscribers\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 this.scheduleVelocityCheck = () => sync.postRender(this.velocityCheck);\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 this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n this.velocityUpdateSubscribers.notify(this.getVelocity());\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 * ```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 * @privateRemarks\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 onChange(subscription) {\n return this.updateSubscribers.add(subscription);\n }\n clearListeners() {\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 onRenderRequest(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 attach(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 set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\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 get() {\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\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 getVelocity() {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 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 start(animation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.stopAnimation = animation(resolve);\n }).then(() => this.clearAnimation());\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.stopAnimation;\n }\n clearAnimation() {\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 destroy() {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n }\n}\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\n","import { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n var _a;\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n const numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (let i = 0; i < numNewValues; i++) {\n const key = newValueKeys[i];\n const targetValue = target[key];\n let 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 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 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 if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(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 }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n if (origin[key] === undefined) {\n origin[key] = value;\n }\n if (value !== null)\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n const valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a;\n const origin = {};\n for (const key in target) {\n const transitionOrigin = getOriginFromTransition(key, transition);\n origin[key] =\n transitionOrigin !== undefined\n ? transitionOrigin\n : (_a = visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","import { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(() => visualElement.notify(\"AnimationComplete\", definition));\n}\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.custom);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\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 const getAnimation = resolved\n ? () => animateTarget(visualElement, resolved, options)\n : () => Promise.resolve();\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 const getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\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 const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type && ((_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.getState()[type]);\n for (const key in target) {\n const value = visualElement.getValue(key);\n const valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n let valueTransition = { delay, ...transition };\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && transformProps.has(key)) {\n valueTransition = {\n ...valueTransition,\n type: false,\n delay: 0,\n };\n }\n let animation = startAnimation(key, value, valueTarget, valueTransition);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation = animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n return Promise.all(animations).then(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.values.forEach((value) => value.stop());\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 */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { animateVisualElement } from './animation.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { AnimationType } from './types.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\nconst variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n const state = createState();\n let 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 const buildResolvedTypeValues = (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\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 function animateChanges(options, changedActiveType) {\n var _a;\n const props = visualElement.getProps();\n const 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 const 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 const 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 let 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 let removedVariantIndex = Infinity;\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 for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n const 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 const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n 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 let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n 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 typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n 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 const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (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 const 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 let resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n 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 const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\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) || variantDidChange) {\n markToAnimate(key);\n }\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 }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\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 }\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 typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\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 if (shouldAnimateType && !isInherited) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type, ...options },\n })));\n }\n }\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 if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(options, type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n [AnimationType.Animate]: createTypeState(true),\n [AnimationType.InView]: createTypeState(),\n [AnimationType.Hover]: createTypeState(),\n [AnimationType.Tap]: createTypeState(),\n [AnimationType.Drag]: createTypeState(),\n [AnimationType.Focus]: createTypeState(),\n [AnimationType.Exit]: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst animations = {\n animation: makeRenderlessComponent(({ visualElement, 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 visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(() => animate.subscribe(visualElement), [animate]);\n }\n }),\n exit: makeRenderlessComponent((props) => {\n const { custom, visualElement } = props;\n const [isPresent, safeToRemove] = usePresence();\n const presenceContext = useContext(PresenceContext);\n useEffect(() => {\n visualElement.isPresent = isPresent;\n const animation = visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Exit, !isPresent, {\n custom: (presenceContext && presenceContext.custom) ||\n custom,\n });\n if (animation && !isPresent) {\n animation.then(safeToRemove);\n }\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const 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 };\n","import { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // 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 const isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = getFrameData();\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `\n * \n * \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as unknown as UseFormReturn;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = ({\n children,\n ...data\n}: FormProviderProps) => (\n \n {children}\n \n);\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport { ReadFormState } from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default , K extends ReadFormState>(\n formStateData: T,\n _proxyFormState: K,\n isRoot?: boolean,\n) => {\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n callback: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject.subscribe({\n next: _props.current.callback,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!Array.isArray(data) && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name?: string) => boolean,\n fieldsNames?: Set | InternalFieldName[],\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n } else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import React from 'react';\n\nimport { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n InternalFieldErrors,\n Message,\n NativeFieldValue,\n} from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n inputValue: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","export default (value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? value.map(() => undefined) : undefined;\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (!isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject =\n updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n\n if (childObject) {\n delete childObject[key];\n }\n\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n\n if (k > 0) {\n previousObjRef = object;\n }\n\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n\n if (\n currentPathsLength === index &&\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\n (Array.isArray(objectRef) && isEmptyArray(objectRef)))\n ) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n\n previousObjRef = objectRef;\n }\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default function createSubject(): Subject {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","export default (value: unknown): value is HTMLElement => {\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n const ElementClass =\n owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement;\n return value instanceof ElementClass;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: U, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: any,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n deepEqual(data[key], formValues[key])\n ? delete dirtyFieldsFromValues[key]\n : (dirtyFieldsFromValues[key] = true);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","export default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<{\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnTouch: boolean;\n isOnAll: boolean;\n }>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport getValidationModes from '../utils/getValidationModes';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport focusFieldBy from './focusFieldBy';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues = cloneObject(_options.defaultValues) || {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _stateFlags = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n let validateFields: Record = {};\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n watch: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = window.setTimeout(callback, wait);\n };\n\n const _updateValid = async () => {\n if (_proxyFormState.isValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : (await executeBuiltInValidation(_fields, true)).valid;\n\n if (isValid !== _formState.isValid) {\n _formState.isValid = isValid;\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _stateFlags.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _stateFlags.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\n isPreviousDirty = get(_formState.dirtyFields, name);\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField || isPreviousDirty !== !isCurrentFieldPristine;\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n validateFields[name]--;\n\n if (\n _proxyFormState.isValidating &&\n !Object.values(validateFields).some((v) => v)\n ) {\n _subjects.state.next({\n isValidating: false,\n });\n validateFields = {};\n }\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema();\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n name?: string;\n error?: undefined | FieldError;\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n get(_formValues, _f.name),\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n if (_f.name === context.name) {\n context.error = fieldError[context.name];\n }\n\n context.valid = false;\n\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_stateFlags.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _stateFlags.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.watch.next({\n name,\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: _formValues,\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n\n _subjects.state.next({\n name,\n dirtyFields: _formState.dirtyFields,\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({});\n _subjects.watch.next({\n name,\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n const field: Field = get(_fields, name);\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.watch.next({\n name,\n type: event.type,\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({});\n\n validateFields[name] = validateFields[name]\n ? validateFields[name] + 1\n : 1;\n\n _subjects.state.next({\n isValidating: true,\n });\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n if (_proxyFormState.isValid) {\n const buildInValidationResult = await executeBuiltInValidation(\n _fields,\n true,\n {\n name,\n valid: true,\n },\n );\n error = buildInValidationResult.error || ({} as FieldError);\n isValid = buildInValidationResult.valid;\n }\n\n if (!error || isEmptyObject(error)) {\n error = (\n await validateField(\n field,\n get(_formValues, name),\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n }\n }\n\n field._f.deps &&\n trigger(\n field._f.deps as FieldPath | FieldPath[],\n );\n\n shouldRenderByError(name, isValid, error, fieldState);\n }\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _subjects.state.next({\n isValidating: true,\n });\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return (\n await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n )\n ).valid;\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = (await executeBuiltInValidation(_fields))\n .valid;\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_stateFlags.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name\n ? convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n )\n : (_formState.errors = {});\n\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.watch.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (get(_fields, fieldName)) {\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n }\n\n _subjects.watch.next({});\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n field\n ? disabledIsDefined &&\n set(\n _formValues,\n name,\n options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)),\n )\n : updateValidAndValue(name, true, options.value);\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.shouldUseNativeValidation\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n _names.mount,\n );\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let hasNoPromiseError = true;\n let fieldValues: any = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n try {\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n\n _focusError();\n }\n } catch (err) {\n hasNoPromiseError = false;\n throw err;\n } finally {\n _formState.isSubmitted = true;\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful:\n isEmptyObject(_formState.errors) && hasNoPromiseError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n }\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneUpdatedValues;\n\n _subjects.array.next({\n values,\n });\n\n _subjects.watch.next({\n values,\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _stateFlags.mount =\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _stateFlags.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty:\n keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields:\n keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n _executeSchema,\n _focusError,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _stateFlags() {\n return _stateFlags;\n },\n set _stateFlags(value) {\n _stateFlags = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport { FieldValues, FormState, UseFormProps, UseFormReturn } from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n callback: React.useCallback(\n (value: FieldValues) => {\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\n control._formState = {\n ...control._formState,\n ...value,\n };\n\n updateFormState({ ...control._formState });\n }\n },\n [control],\n ),\n });\n\n React.useEffect(() => {\n if (!control._stateFlags.mount) {\n control._proxyFormState.isValid && control._updateValid();\n control._stateFlags.mount = true;\n }\n\n if (control._stateFlags.watch) {\n control._stateFlags.watch = false;\n control._subjects.state.next({});\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n formState.submitCount && control._focusError();\n }, [control, formState.submitCount]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","interface IInjectGoogleReCaptchaScriptParams {\n render: string;\n onLoadCallbackName: string;\n useRecaptchaNet: boolean;\n useEnterprise: boolean;\n onLoad: () => void;\n onError: () => void;\n language?: string;\n scriptProps?: {\n nonce?: string;\n defer?: boolean;\n async?: boolean;\n appendTo?: 'head' | 'body';\n id?: string;\n };\n}\n\n/**\n * Function to generate the src for the script tag\n *\n * @param param0\n * @returns\n */\nconst generateGoogleRecaptchaSrc = ({\n useRecaptchaNet,\n useEnterprise\n}: {\n useRecaptchaNet: boolean;\n useEnterprise: boolean;\n}) => {\n const hostName = useRecaptchaNet ? 'recaptcha.net' : 'google.com';\n const script = useEnterprise ? 'enterprise.js' : 'api.js';\n\n return `https://www.${hostName}/recaptcha/${script}`;\n};\n\n/**\n * Function to clean the recaptcha_[language] script injected by the recaptcha.js\n */\nconst cleanGstaticRecaptchaScript = () => {\n const script = document.querySelector(\n 'script[src^=\"https://www.gstatic.com/recaptcha/releases\"]'\n );\n\n if (script) {\n script.remove();\n }\n};\n\n/**\n * Function to check if script has already been injected\n *\n * @param scriptId\n * @returns\n */\nexport const isScriptInjected = (scriptId: string) =>\n !!document.querySelector(`#${scriptId}`);\n\n/**\n * Function to remove default badge\n *\n * @returns\n */\nconst removeDefaultBadge = () => {\n const nodeBadge = document.querySelector('.grecaptcha-badge');\n if (nodeBadge && nodeBadge.parentNode) {\n document.body.removeChild(nodeBadge.parentNode);\n }\n};\n\n/**\n * Function to clear custom badge\n *\n * @returns\n */\nconst cleanCustomBadge = (customBadge: HTMLElement | null) => {\n if (!customBadge) {\n return;\n }\n\n while (customBadge.lastChild) {\n customBadge.lastChild.remove();\n }\n};\n\n/**\n * Function to clean node of badge element\n *\n * @param container\n * @returns\n */\nexport const cleanBadge = (container?: HTMLElement | string) => {\n if (!container) {\n removeDefaultBadge();\n\n return;\n }\n\n const customBadge = typeof container === 'string' ? document.getElementById(container) : container;\n\n cleanCustomBadge(customBadge);\n};\n\n/**\n * Function to clean google recaptcha script\n *\n * @param scriptId\n * @param container\n */\nexport const cleanGoogleRecaptcha = (scriptId: string, container?: HTMLElement | string) => {\n // remove badge\n cleanBadge(container);\n\n // remove old config from window\n /* eslint-disable @typescript-eslint/no-explicit-any */\n (window as any).___grecaptcha_cfg = undefined;\n\n // remove script\n const script = document.querySelector(`#${scriptId}`);\n if (script) {\n script.remove();\n }\n\n cleanGstaticRecaptchaScript();\n};\n\n/**\n * Function to inject the google recaptcha script\n *\n * @param param0\n * @returns\n */\nexport const injectGoogleReCaptchaScript = ({\n render,\n onLoadCallbackName,\n language,\n onLoad,\n useRecaptchaNet,\n useEnterprise,\n scriptProps: {\n nonce = '',\n defer = false,\n async = false,\n id = '',\n appendTo\n } = {}\n}: IInjectGoogleReCaptchaScriptParams) => {\n const scriptId = id || 'google-recaptcha-v3';\n\n // Script has already been injected, just call onLoad and does othing else\n if (isScriptInjected(scriptId)) {\n onLoad();\n\n return;\n }\n\n /**\n * Generate the js script\n */\n const googleRecaptchaSrc = generateGoogleRecaptchaSrc({\n useEnterprise,\n useRecaptchaNet\n });\n const js = document.createElement('script');\n js.id = scriptId;\n js.src = `${googleRecaptchaSrc}?render=${render}${\n render === 'explicit' ? `&onload=${onLoadCallbackName}` : ''\n }${\n language ? `&hl=${language}` : ''\n }`;\n\n if (!!nonce) {\n js.nonce = nonce;\n }\n\n js.defer = !!defer;\n js.async = !!async;\n js.onload = onLoad;\n\n /**\n * Append it to the body // head\n */\n const elementToInjectScript =\n appendTo === 'body'\n ? document.body\n : document.getElementsByTagName('head')[0];\n\n elementToInjectScript.appendChild(js);\n};\n\n/**\n * Function to log warning message if it's not in production mode\n *\n * @param message String\n * @returns\n */\nexport const logWarningMessage = (message: string) => {\n const isDevelopmentMode =\n typeof process !== 'undefined' && !!process.env && process.env.NODE_ENV !== 'production';\n\n if (isDevelopmentMode) {\n return;\n }\n\n console.warn(message);\n};\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport {\n cleanGoogleRecaptcha,\n injectGoogleReCaptchaScript,\n logWarningMessage\n} from './utils';\n\nenum GoogleRecaptchaError {\n SCRIPT_NOT_AVAILABLE = 'Recaptcha script is not available'\n}\n\ninterface IGoogleReCaptchaProviderProps {\n reCaptchaKey: string;\n language?: string;\n useRecaptchaNet?: boolean;\n useEnterprise?: boolean;\n scriptProps?: {\n nonce?: string;\n defer?: boolean;\n async?: boolean;\n appendTo?: 'head' | 'body';\n id?: string;\n onLoadCallbackName?: string;\n };\n container?: {\n element: string | HTMLElement;\n parameters: {\n badge?: 'inline' | 'bottomleft' | 'bottomright';\n theme?: 'dark' | 'light';\n tabindex?: number;\n callback?: () => void;\n expiredCallback?: () => void;\n errorCallback?: () => void;\n }\n };\n children: ReactNode;\n}\n\nexport interface IGoogleReCaptchaConsumerProps {\n executeRecaptcha?: (action?: string) => Promise;\n container?: string | HTMLElement;\n}\n\nconst GoogleReCaptchaContext = createContext({\n executeRecaptcha: () => {\n // This default context function is not supposed to be called\n throw Error(\n 'GoogleReCaptcha Context has not yet been implemented, if you are using useGoogleReCaptcha hook, make sure the hook is called inside component wrapped by GoogleRecaptchaProvider'\n );\n }\n});\n\nconst { Consumer: GoogleReCaptchaConsumer } = GoogleReCaptchaContext;\n\nexport function GoogleReCaptchaProvider({\n reCaptchaKey,\n useEnterprise = false,\n useRecaptchaNet = false,\n scriptProps,\n language,\n container,\n children\n}: IGoogleReCaptchaProviderProps) {\n const [greCaptchaInstance, setGreCaptchaInstance] = useState(null);\n const clientId = useRef(reCaptchaKey);\n\n const scriptPropsJson = JSON.stringify(scriptProps);\n const parametersJson = JSON.stringify(container?.parameters);\n\n useEffect(() => {\n if (!reCaptchaKey) {\n logWarningMessage(\n ' recaptcha key not provided'\n );\n\n return;\n }\n\n const scriptId = scriptProps?.id || 'google-recaptcha-v3';\n const onLoadCallbackName = scriptProps?.onLoadCallbackName || 'onRecaptchaLoadCallback';\n\n ((window as unknown) as {[key: string]: () => void})[onLoadCallbackName] = () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const grecaptcha = useEnterprise\n ? (window as any).grecaptcha.enterprise\n : (window as any).grecaptcha;\n\n const params = {\n badge: 'inline',\n size: 'invisible',\n sitekey: reCaptchaKey,\n ...(container?.parameters || {})\n };\n clientId.current = grecaptcha.render(container?.element, params);\n };\n\n const onLoad = () => {\n if (!window || !(window as any).grecaptcha) {\n logWarningMessage(\n ` ${GoogleRecaptchaError.SCRIPT_NOT_AVAILABLE}`\n );\n\n return;\n }\n\n const grecaptcha = useEnterprise\n ? (window as any).grecaptcha.enterprise\n : (window as any).grecaptcha;\n\n grecaptcha.ready(() => {\n setGreCaptchaInstance(grecaptcha);\n });\n };\n\n const onError = () => {\n logWarningMessage('Error loading google recaptcha script');\n };\n\n injectGoogleReCaptchaScript({\n render: container?.element ? 'explicit' : reCaptchaKey,\n onLoadCallbackName,\n useEnterprise,\n useRecaptchaNet,\n scriptProps,\n language,\n onLoad,\n onError\n });\n\n return () => {\n cleanGoogleRecaptcha(scriptId, container?.element);\n };\n }, [\n useEnterprise,\n useRecaptchaNet,\n scriptPropsJson,\n parametersJson,\n language,\n reCaptchaKey,\n container?.element,\n ]);\n\n const executeRecaptcha = useCallback(\n (action?: string) => {\n if (!greCaptchaInstance || !greCaptchaInstance.execute) {\n throw new Error(\n ' Google Recaptcha has not been loaded'\n );\n }\n\n return greCaptchaInstance.execute(clientId.current, { action });\n },\n [greCaptchaInstance, clientId]\n );\n\n const googleReCaptchaContextValue = useMemo(\n () => ({\n executeRecaptcha: greCaptchaInstance ? executeRecaptcha : undefined,\n container: container?.element,\n }),\n [executeRecaptcha, greCaptchaInstance, container?.element]\n );\n\n return (\n \n {children}\n \n );\n}\n\nexport { GoogleReCaptchaConsumer, GoogleReCaptchaContext };\n","import { useContext } from 'react';\nimport { GoogleReCaptchaContext } from './google-recaptcha-provider';\n\nexport const useGoogleReCaptcha = () => useContext(GoogleReCaptchaContext);\n","import React, { useEffect } from 'react';\nimport { useGoogleReCaptcha } from './use-google-recaptcha';\nimport { logWarningMessage } from './utils';\n\nexport interface IGoogleRecaptchaProps {\n onVerify: (token: string) => void | Promise;\n action?: string;\n refreshReCaptcha?: boolean | string | number | null;\n}\n\nexport function GoogleReCaptcha({\n action,\n onVerify,\n refreshReCaptcha,\n}: IGoogleRecaptchaProps) {\n const googleRecaptchaContextValue = useGoogleReCaptcha();\n\n useEffect(() => {\n const { executeRecaptcha } = googleRecaptchaContextValue;\n\n if (!executeRecaptcha) {\n return;\n }\n\n const handleExecuteRecaptcha = async () => {\n const token = await executeRecaptcha(action);\n\n if (!onVerify) {\n logWarningMessage('Please define an onVerify function');\n\n return;\n }\n\n onVerify(token);\n };\n\n handleExecuteRecaptcha();\n }, [action, onVerify, refreshReCaptcha, googleRecaptchaContextValue]);\n\n const { container } = googleRecaptchaContextValue;\n\n if (typeof container === 'string') {\n return
;\n }\n\n return null;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { useState } from \"react\";\r\nimport {\r\n ChatBubbleLeftIcon,\r\n EnvelopeIcon,\r\n MapPinIcon,\r\n} from \"@heroicons/react/24/solid\";\r\nimport { SubmitHandler, useForm } from \"react-hook-form\";\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ntype Inputs = {\r\n name: string;\r\n email: string;\r\n subject: string;\r\n message: string;\r\n token: string;\r\n};\r\nconst BASE_URL = process.env.REACT_APP_API_URL;\r\nconst ContactMe = () => {\r\n const { t } = useTranslation();\r\n const {\r\n register,\r\n handleSubmit,\r\n reset,\r\n formState: { errors },\r\n } = useForm();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const [submitted, setSubmitted] = useState(false);\r\n\r\n const onSubmit: SubmitHandler = (formData) => {\r\n if (!executeRecaptcha) {\r\n console.log(\"Execute recaptcha not yet available\");\r\n return;\r\n }\r\n executeRecaptcha(\"email\").then((token) =>\r\n submitEnquiryForm(token, formData)\r\n );\r\n };\r\n\r\n const submitEnquiryForm = (token: string, formData: Inputs) => {\r\n formData.token = token;\r\n fetch(`${BASE_URL}/home`, {\r\n method: \"POST\",\r\n body: JSON.stringify(formData),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n },\r\n }).then((response) => {\r\n setSubmitted(true);\r\n reset();\r\n hideMeesage();\r\n });\r\n };\r\n function hideMeesage() {\r\n setTimeout(() => {\r\n setSubmitted(false);\r\n }, 2000);\r\n }\r\n return (\r\n
\r\n

\r\n {t(\"contact\")}\r\n

\r\n

\r\n {t(\"contact_call\")}{\" \"}\r\n \r\n {t(\"contact_call1\")}\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n {t(\"chat_now\")}\r\n \r\n
\r\n
\r\n \r\n

hello@jsaura.com

\r\n
\r\n
\r\n \r\n

Canada, Montreal

\r\n
\r\n
\r\n \r\n {submitted && (\r\n \r\n {t(\"message_success\")}\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n {errors.name && This field is required}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {errors.email && This field is required}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {errors.subject && This field is required}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {errors.subject && This field is required}\r\n
\r\n
\r\n \r\n {t(\"submit\")}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ContactMe;\r\n","import React from \"react\";\r\nimport { SocialIcon } from \"react-social-icons\";\r\nimport { motion } from \"framer-motion\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function Header() {\r\n const { i18n, t } = useTranslation();\r\n const handleLanguage = () => {\r\n const lang = i18n.language === \"en\" ? \"fr\" : \"en\";\r\n i18n.changeLanguage(lang);\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.language === \"en\" ? \"FR\" : \"EN\"}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\nexport default function BackgroundCircles() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 98,\n viewBox: \"0 0 100 98\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"logo\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path2\",\n fill: \"none\",\n stroke: \"none\",\n d: \"M 48.524017 26.013016 L 71.699982 26.013016 C 71.699982 26.013016 75.451996 26.044998 75.584015 28.977005 C 75.715973 31.909012 75.689972 35.448013 75.689972 35.659012 C 75.689972 35.87001 75.769012 36.530991 75.240997 36.504013 C 74.712982 36.477005 65.415985 39.779007 65.415985 39.779007 L 65.415985 31.324997 L 60.292023 31.324997 L 60.292023 46.53801 L 55.722992 49.707016 L 75.71701 43.130997 L 75.553986 71.044998 C 75.553986 71.044998 74.31601 73.692001 71.826019 73.692001 L 53.826019 73.692001 C 53.826019 73.692001 50.082977 72.92601 50.082977 70.656998 L 50.082977 63.514996 L 60.314972 60.115002 L 60.314972 68.664017 L 65.431 68.664017 L 65.464996 53.247997 L 70.375031 50.055004 L 49.941986 56.824993 L 49.941986 27.675003 Z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Path4\",\n opacity: 0.7\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path\",\n fill: \"none\",\n stroke: \"none\",\n d: \"M 67.788002 4.365997 C 72.892601 4.366295 77.608147 7.093582 80.154007 11.517998 L 97.805 42.194 C 100.339516 46.599121 100.339516 52.019878 97.805 56.424999 L 80.154007 87.100998 C 77.607971 91.525726 72.891953 94.253059 67.787003 94.252998 L 32.57 94.252998 C 27.46505 94.253059 22.749035 91.525726 20.202999 87.100998 L 2.552999 56.424999 C 0.018484 52.019878 0.018484 46.599121 2.552999 42.194 L 20.202999 11.517998 C 22.749035 7.093269 27.46505 4.365936 32.57 4.365997 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"path1\",\n fill: \"#c279f2\",\n stroke: \"none\",\n d: \"M 32.569935 6.365997 C 28.193722 6.365997 24.119335 8.722328 21.936794 12.515442 L 4.286091 43.191071 C 3.216732 45.049545 2.651493 47.165199 2.651493 49.309357 C 2.651493 51.453514 3.216717 53.569187 4.286076 55.427643 L 21.936718 86.10331 C 24.119274 89.896439 28.193661 92.252769 32.569881 92.252769 L 67.787582 92.252769 C 72.163795 92.252769 76.238182 89.896439 78.420738 86.10331 L 96.071426 55.427673 C 97.140785 53.569218 97.706009 51.453545 97.706009 49.309387 C 97.706009 47.16523 97.140785 45.049553 96.071426 43.191086 L 78.420738 12.515442 C 76.238182 8.722328 72.163795 6.365997 67.787582 6.365997 L 32.569935 6.365997 M 32.569935 4.365997 L 67.787582 4.365997 C 72.892441 4.365997 77.608315 7.093323 80.154251 11.517982 L 97.804939 42.193626 C 100.339699 46.598869 100.339699 52.019901 97.804939 56.425129 L 80.154251 87.100769 C 77.608315 91.525444 72.892426 94.252769 67.787582 94.252769 L 32.569881 94.252769 C 27.465038 94.252769 22.749149 91.525444 20.203205 87.100769 L 2.552563 56.425102 C 0.017803 52.019875 0.017803 46.598839 2.552578 42.193611 L 20.203281 11.517982 C 22.749203 7.093323 27.465092 4.365997 32.569935 4.365997 Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Polygon2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path2\",\n fill: \"none\",\n stroke: \"none\",\n d: \"M 85.168434 17.422501 C 91.363243 20.999977 95.175606 27.613708 95.166519 34.767311 L 95.132339 63.558506 C 95.123497 70.686081 91.322083 77.270325 85.153839 80.841774 L 60.237518 95.266106 C 54.046806 98.849846 46.413464 98.854454 40.218433 95.278183 L 15.425858 80.964188 C 9.230223 77.387527 5.416779 70.77401 5.425039 63.620106 L 5.460949 34.82991 C 5.469795 27.702332 9.27121 21.118088 15.439449 17.546638 L 40.354038 3.121307 C 46.545311 -0.463715 54.18 -0.468597 60.375862 3.108498 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"path3\",\n fill: \"#6204bf\",\n stroke: \"none\",\n d: \"M 59.37603 4.840637 C 56.640045 3.261017 53.524002 2.427124 50.364754 2.429108 C 47.205521 2.431091 44.090523 3.268883 41.356518 4.851929 L 16.441586 19.278168 C 13.717838 20.85527 11.446335 23.129631 9.872635 25.855354 C 8.298935 28.581085 7.465038 31.68544 7.4611 34.832825 L 7.425055 63.622917 C 7.421103 66.78215 8.253048 69.898705 9.830963 72.635681 C 11.408865 75.372643 13.689066 77.654266 16.425049 79.233887 L 41.217247 93.547668 C 43.953228 95.127289 47.069275 95.961189 50.228523 95.959213 C 53.387749 95.957237 56.502754 95.119453 59.236755 93.536415 L 84.15168 79.110153 C 86.875435 77.533051 89.146935 75.258698 90.720634 72.532967 C 92.294327 69.807251 93.128227 66.702896 93.132164 63.5555 L 93.168205 34.765419 C 93.172157 31.606178 92.340202 28.489609 90.762306 25.752647 C 89.184395 23.015663 86.904198 20.734032 84.168213 19.154411 L 59.37603 4.840637 M 60.37603 3.108589 L 85.168213 17.422363 C 91.363991 20.999496 95.177162 27.61367 95.168198 34.767929 L 95.132164 63.558002 C 95.123238 70.685432 91.321915 77.269516 85.153847 80.84095 L 60.238922 95.267204 C 54.047638 98.852097 46.41301 98.856842 40.217247 95.279724 L 15.425049 80.965942 C 9.229286 77.388809 5.4161 70.774666 5.42506 63.620411 L 5.461103 34.830322 C 5.470024 27.702904 9.271351 21.118813 15.439419 17.547379 L 40.354351 3.12114 C 46.545635 -0.463753 54.180267 -0.468536 60.37603 3.108589 Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path1\",\n fill: \"#ffffff\",\n stroke: \"none\",\n d: \"M 41.48497 26.951988 L 48.832993 26.951988 L 48.757004 59.399986 C 48.279099 60.020042 47.702377 60.557213 47.049973 60.990013 C 46.350021 61.313988 32.872971 61.114006 32.872971 61.114006 C 31.947861 60.720573 31.163986 60.055595 30.624985 59.206993 C 30.487228 58.438957 30.455307 57.655693 30.530014 56.87899 C 30.538986 55.017998 30.530014 52.645012 30.530014 52.645012 L 37.877975 50.228996 L 37.877975 57.563011 L 41.486984 57.577995 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path3\",\n fill: \"#ffffff\",\n stroke: \"none\",\n d: \"M 50.158012 27.00901 L 66.757988 27.00901 C 66.757988 27.00901 69.445 27.03199 69.53997 29.131996 C 69.635002 31.232002 69.61602 33.767006 69.61602 33.918007 C 69.61602 34.069008 69.672966 34.542 69.293999 34.522987 C 68.91497 34.504005 62.257011 36.868996 62.257011 36.868996 L 62.257011 30.815987 L 58.586967 30.815987 L 58.586967 41.716011 L 55.314018 43.986 L 69.634026 39.276009 L 69.517021 59.268993 C 69.023857 60.328442 68.009575 61.050213 66.846977 61.168987 L 53.947014 61.168987 C 53.947014 61.168987 51.267021 60.620007 51.267021 58.995007 L 51.267021 53.880016 L 58.595024 51.444988 L 58.595024 57.568005 L 62.259026 57.568005 L 62.283989 46.526009 L 65.801018 44.238991 L 51.168999 49.083992 L 51.168999 28.198006 Z\"\n }), /*#__PURE__*/React.createElement(\"text\", {\n id: \"AURA\",\n xmlSpace: \"preserve\",\n x: 30,\n y: 73,\n fontFamily: \"Helvetica\",\n fontSize: 13,\n fontWeight: 700,\n fill: \"#ffffff\"\n }, \"AURA\")))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.dbdbbf41607657572199f7e666a0b6f8.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport { Cursor, useTypewriter } from \"react-simple-typewriter\";\r\nimport BackgroundCircles from \"./BackgroundCircles\";\r\nimport logo from \"../assets/img/logo.svg\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function Hero() {\r\n const { i18n, t } = useTranslation();\r\n const [text] = useTypewriter({\r\n words:\r\n i18n.language === \"en\"\r\n ? [\r\n \"Hi my name is Boris\",\r\n \" I am full stack developer\",\r\n \"and web designer\",\r\n ]\r\n : [\r\n \"Salut je m'appelle Boris\",\r\n \"Je suis développeur full stack\",\r\n \"et concepteur de sites web\",\r\n ],\r\n loop: true,\r\n delaySpeed: 2000,\r\n });\r\n return (\r\n
\r\n \r\n \r\n
\r\n

\r\n {t(\"software_engineer\")}\r\n

\r\n

\r\n {text}\r\n \r\n

\r\n \r\n
\r\n
\r\n );\r\n}\r\n","var _path, _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgRightArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 330 330\",\n style: {\n enableBackground: \"new 0 0 330 330\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_222_\",\n d: \"M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001 c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213 C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606 C255,161.018,253.42,157.202,250.606,154.389z\",\n fill: \"#ffffff\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null)), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRightArrow);\nexport default __webpack_public_path__ + \"static/media/right-arrow.5cf46649408c8084764b538e0a8f1742.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLeftArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 25.451 25.451\",\n style: {\n enableBackground: \"new 0 0 25.451 25.451\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"c185_triangle\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.982,0.521v2.006L8.57,12.315c-0.121,0.101-0.195,0.251-0.195,0.41s0.074,0.311,0.195,0.41l12.412,9.79v2.005 c0,0.199-0.115,0.383-0.297,0.469c-0.178,0.086-0.395,0.064-0.549-0.061L4.664,13.136c-0.122-0.1-0.194-0.251-0.194-0.41 s0.072-0.31,0.194-0.41L20.136,0.113c0.154-0.126,0.371-0.148,0.549-0.061C20.866,0.139,20.982,0.322,20.982,0.521z\",\n fill: \"#ffffff\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Capa_1_58_\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeftArrow);\nexport default __webpack_public_path__ + \"static/media/left-arrow.12048168af3294e34b0bdcf786c63c56.svg\";\nexport { ForwardRef as ReactComponent };","import { motion } from \"framer-motion\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ProjectGet } from \"../Interfaces/Project\";\r\nimport rightArrow from \"../assets/img/right-arrow.svg\";\r\nimport leftArrow from \"../assets/img/left-arrow.svg\";\r\nimport { SocialIcon } from \"react-social-icons\";\r\n\r\nconst BASE_URL = process.env.REACT_APP_API_URL;\r\nfunction Projects() {\r\n const { i18n, t } = useTranslation();\r\n const [projects, setProjects] = useState([]);\r\n const contentWrapper = useRef(null);\r\n const sideScroll = (\r\n element: HTMLDivElement | null,\r\n speed: number,\r\n distance: number,\r\n step: number\r\n ) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element!.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n };\r\n useEffect(() => {\r\n const locale = i18n.language;\r\n fetch(`${BASE_URL}/home?lang=${locale}`)\r\n .then((response) => response.json())\r\n .then((data) => setProjects(data));\r\n }, [i18n.language]);\r\n return (\r\n \r\n

\r\n {t(\"projects\")}\r\n

\r\n\r\n \r\n {projects.map((project, i) => (\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n {project.name}\r\n

\r\n

{project.description}

\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Projects;\r\n","import React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\n\r\ntype Props = {\r\n directionLeft?: boolean;\r\n skills: { icon: string; knowledge: string };\r\n};\r\n\r\nfunction Skill({ directionLeft, skills }: Props) {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n

\r\n {skills.knowledge}\r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Skill;\r\n","import { motion } from \"framer-motion\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Skill from \"./Skill\";\r\n\r\nconst skills: Array<{ icon: string; knowledge: string }> = [\r\n { icon: \"angular.svg\", knowledge: \"100%\" },\r\n { icon: \"react.svg\", knowledge: \"75%\" },\r\n { icon: \"node-js.svg\", knowledge: \"65%\" },\r\n { icon: \"vuejs.svg\", knowledge: \"75%\" },\r\n { icon: \"net_nobg.svg\", knowledge: \"85%\" },\r\n { icon: \"nextjs.svg\", knowledge: \"75%\" },\r\n { icon: \"js.svg\", knowledge: \"85%\" },\r\n { icon: \"db.svg\", knowledge: \"60%\" },\r\n];\r\n\r\nfunction Skills() {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n
\r\n

\r\n {t(\"skills\")}\r\n

\r\n

\r\n {t(\"skill_subtitle\")}\r\n

\r\n
\r\n
\r\n
\r\n {skills.map((skill, i) => (\r\n \r\n ))}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Skills;\r\n","import { motion } from \"framer-motion\";\r\nimport React from \"react\";\r\nimport Experience from \"../Interfaces/Ecperience\";\r\n\r\ntype Props = {\r\n exp: Experience;\r\n};\r\n\r\nfunction ExperienceCard({ exp }: Props) {\r\n return (\r\n
\r\n \r\n
\r\n

{exp.position}

\r\n

{exp.companyName}

\r\n
\r\n {exp.techStack.map((tech) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n

\r\n Started work {exp.startYear} - Ended {exp.endYear}\r\n

\r\n
    \r\n {exp.keyPoints.map((points) => {\r\n return
  • {points}
  • ;\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ExperienceCard;\r\n","import React, { useRef } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport ExperienceCard from \"./ExperienceCard\";\r\nimport Experience from \"../Interfaces/Ecperience\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport rightArrow from \"../assets/img/right-arrow.svg\";\r\nimport leftArrow from \"../assets/img/left-arrow.svg\";\r\n\r\nfunction WorkExperience() {\r\n const { i18n, t } = useTranslation();\r\n const contentWrapper = useRef(null);\r\n const sideScroll = (\r\n element: HTMLDivElement | null,\r\n speed: number,\r\n distance: number,\r\n step: number\r\n ) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element!.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n };\r\n const experiences: Experience[] =\r\n i18n.language === \"en\"\r\n ? [\r\n {\r\n logoName: \"biron.jpg\",\r\n position: \"Senior Frontend Developer\",\r\n companyName: \"Biron\",\r\n techStack: [\"angular.svg\", \"net.svg\"],\r\n startYear: \"2021\",\r\n endYear: \"Current\",\r\n keyPoints: [\r\n \"Projects architecture\",\r\n \"Front end development\",\r\n \"Back end development\",\r\n ],\r\n },\r\n {\r\n logoName: \"agco.jpg\",\r\n position: \"Développeur Full Stack\",\r\n companyName: \"Senior Web Developer\",\r\n techStack: [\"angular.svg\", \"cplus.svg\", \"websocket.svg\"],\r\n startYear: \"2017\",\r\n endYear: \"2021\",\r\n keyPoints: [\r\n \"Embedded solution implementation\",\r\n \"Front end development\",\r\n \"Back end development\",\r\n ],\r\n },\r\n {\r\n logoName: \"routeworthy.jpg\",\r\n position: \"Full Stack Developer\",\r\n companyName: \"Routeworthy\",\r\n techStack: [\"angular.svg\", \"net.svg\"],\r\n startYear: \"2016\",\r\n endYear: \"2017\",\r\n keyPoints: [\r\n \"Complex solution implementation\",\r\n \"Front end development\",\r\n \"Back end development\",\r\n ],\r\n },\r\n {\r\n logoName: \"gemstelecom.jpg\",\r\n position: \"Senior Web Developer\",\r\n companyName: \"(Gemstelecom) Cronomagic\",\r\n techStack: [\"react.svg\", \"net.svg\"],\r\n startYear: \"2016\",\r\n endYear: \"2017\",\r\n keyPoints: [\r\n \"Development ERP, CRM\",\r\n \"Front end development\",\r\n \"Back end development\",\r\n ],\r\n },\r\n ]\r\n : [\r\n {\r\n logoName: \"biron.jpg\",\r\n position: \"Développeur Frontend Sénior\",\r\n companyName: \"Biron\",\r\n techStack: [\"angular.svg\", \"net.svg\"],\r\n startYear: \"2021\",\r\n endYear: \"Actuel\",\r\n keyPoints: [\r\n \"Architecture des projets\",\r\n \"Développement front-end\",\r\n \"Développement back-end\",\r\n ],\r\n },\r\n\r\n {\r\n logoName: \"agco.jpg\",\r\n position: \"Full Stack Developer\",\r\n companyName: \"Développeur senior\",\r\n techStack: [\"angular.svg\", \"cplus.svg\", \"websocket.svg\"],\r\n startYear: \"2017\",\r\n endYear: \"2021\",\r\n keyPoints: [\r\n \"Implémentation de la solution embarquée\",\r\n \"Développement front-end\",\r\n \"Développement back-end\",\r\n ],\r\n },\r\n {\r\n logoName: \"routeworthy.jpg\",\r\n position: \"Développeur Full Stack\",\r\n companyName: \"Routeworthy\",\r\n techStack: [\"angular.svg\", \"net.svg\"],\r\n startYear: \"2016\",\r\n endYear: \"2017\",\r\n keyPoints: [\r\n \"Implémentation de solutions complexes\",\r\n \"Développement front-end\",\r\n \"Développement back-end\",\r\n ],\r\n },\r\n {\r\n logoName: \"gemstelecom.jpg\",\r\n position: \"Développeur Web Sénior\",\r\n companyName: \"(Gemstelecom) Cronomagic\",\r\n techStack: [\"react.svg\", \"net.svg\"],\r\n startYear: \"2016\",\r\n endYear: \"2017\",\r\n keyPoints: [\r\n \"Développement ERP, CRM\",\r\n \"Développement front-end\",\r\n \"Développement back-end\",\r\n ],\r\n },\r\n ];\r\n return (\r\n \r\n

\r\n {t(\"experience\")}\r\n

\r\n
\r\n
\r\n \r\n {experiences.map((exp) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default WorkExperience;\r\n","import React from \"react\";\r\nimport About from \"../components/About\";\r\nimport ContactMe from \"../components/ContactMe\";\r\nimport Header from \"../components/Header\";\r\nimport Hero from \"../components/Hero\";\r\nimport Projects from \"../components/Projects\";\r\nimport Skills from \"../components/Skills\";\r\nimport WorkExperience from \"../components/WorkExperience\";\r\n\r\nfunction App() {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback) {\n fetchApi(url, fetchOptions).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\nvar omitFetchOptions = false;\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n try {\n fetchIt(url, fetchOptions, callback);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport Backend from \"i18next-http-backend\";\r\n\r\ni18n.use(initReactI18next).use(Backend).init({\r\n lng: \"en\",\r\n fallbackLng: \"en\",\r\n});\r\n\r\nexport default i18n;\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLAC e navigations for data routers\n * behave the same as POP\n *\n * @param location The incoming location from router.navigate()\n */\n encodeLocation(location: Location): Location;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n encodeLocation(location) {\n return location;\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n if (listener) {\n listener({ action, location: getCurrentLocation() });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport function createURL(location: Location | string): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n typeof window !== \"undefined\" &&\n typeof window.location !== \"undefined\" &&\n window.location.origin !== \"null\"\n ? window.location.origin\n : \"unknown://unknown\";\n let href = typeof location === \"string\" ? location : createPath(location);\n return new URL(href, base);\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function handlePop() {\n action = Action.Pop;\n if (listener) {\n listener({ action, location: history.location });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n encodeLocation(location) {\n // Encode a Location the same way window.location would\n let url = createURL(createPath(location));\n return {\n ...location,\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import { createContext, useEffect, useState } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { AuthContextProv } from \"../Interfaces/AuthContextProv\";\r\n\r\nconst AuthContext = createContext({\r\n token: \"\",\r\n isLoggedIn: false,\r\n login: (token: string) => {},\r\n logout: () => {},\r\n});\r\n\r\nexport const AuthContextProvider = (props: any) => {\r\n const initToken =\r\n typeof window === \"undefined\" ? \"\" : localStorage.getItem(\"token\");\r\n\r\n const [token, setToken] = useState(initToken);\r\n\r\n const userIsLogedIn = !!token;\r\n const loginHandler = (token: string) => {\r\n setToken(token);\r\n localStorage.setItem(\"token\", token);\r\n };\r\n\r\n const logoutHandler = () => {\r\n setToken(null);\r\n window.localStorage.removeItem(\"token\");\r\n };\r\n\r\n const ContextValue: AuthContextProv = {\r\n token: token,\r\n isLoggedIn: userIsLogedIn,\r\n login: loginHandler,\r\n logout: logoutHandler,\r\n };\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nconst parseJwt = (token: string) => {\r\n try {\r\n return JSON.parse(atob(token.split(\".\")[1]));\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\nexport const AuthVerify = (props: any) => {\r\n let location = useLocation();\r\n\r\n useEffect(() => {\r\n const user = JSON.parse(localStorage.getItem(\"toke\") || \"\");\r\n\r\n if (user) {\r\n const decodedJwt = parseJwt(user.accessToken);\r\n\r\n if (decodedJwt.exp * 1000 < Date.now()) {\r\n props.logOut();\r\n }\r\n }\r\n }, [location, props]);\r\n\r\n return;\r\n};\r\n\r\nexport default AuthContext;\r\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import type { Location, Path, To } from \"./history\";\nimport { parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type FormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: Exclude;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `${string}:${infer Param}`\n ? Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/generate-path\n */\nexport function generatePath(\n path: Path,\n params: {\n [key in PathParam]: string;\n } = {} as any\n): string {\n return path\n .replace(/:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n });\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeys: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscriber?: (aborted: boolean) => void = undefined;\n data: Record;\n\n constructor(data: Record) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n }\n\n private trackPromise(\n key: string | number,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string | number,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn: (aborted: boolean) => void) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport function defer(data: Record) {\n return new DeferredData(data);\n}\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n\n constructor(status: number, statusText: string | undefined, data: any) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.data = data;\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import type { History, Location, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n createURL,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): void;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(request: Request): Promise;\n queryRoute(request: Request, routeId?: string): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n let initialScrollRestored = false;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let { matches, route, error } = getNotFoundMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location }) =>\n startNavigation(historyAction, location)\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a submission\n // - We're past the submitting state and into the loading state\n // - The location we've finished loading is different from the submission\n // location, indicating we redirected from the action (avoids false\n // positives for loading/submissionRedirect when actionData returned\n // on a prior submission)\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n state.navigation.state === \"loading\" &&\n state.navigation.formAction?.split(\"?\")[0] === location.pathname;\n\n // Always preserve any existing loaderData from re-used routes\n let newLoaderData = newState.loaderData\n ? {\n loaderData: mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || []\n ),\n }\n : {};\n\n updateState({\n // Clear existing actionData on any completed navigation beyond the original\n // action, unless we're currently finishing the loading/actionReload state.\n // Do this prior to spreading in newState in case we got back to back actions\n ...(isActionReload ? {} : { actionData: null }),\n ...newState,\n ...newLoaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData\n ? false\n : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset,\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let location = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n location = init.history.encodeLocation(location);\n\n let historyAction =\n (opts && opts.replace) === true || submission != null\n ? HistoryAction.Replace\n : HistoryAction.Push;\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n return await startNavigation(historyAction, location, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n matches: notFoundMatches,\n route,\n error,\n } = getNotFoundMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createRequest(\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (opts && opts.submission) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = getMethodNotAllowedResult(location);\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let redirectNavigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, result.location),\n ...submission,\n };\n await startRedirectNavigation(\n result,\n redirectNavigation,\n opts && opts.replace\n );\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n loadingNavigation = navigation;\n }\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: mergeLoaderData(state.loaderData, {}, matches),\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n actionData: pendingActionData || null,\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n updateState({\n navigation: loadingNavigation,\n actionData: pendingActionData || state.actionData || null,\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n let redirectNavigation = getLoaderRedirect(state, redirect);\n await startRedirectNavigation(redirect, redirectNavigation, replace);\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(key, routeId, new ErrorResponse(404, \"Not Found\", null));\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let { error } = getMethodNotAllowedResult(path);\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createRequest(path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n let redirectNavigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, actionResult.location),\n ...submission,\n };\n await startRedirectNavigation(actionResult, redirectNavigation);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createRequest(\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n let redirectNavigation = getLoaderRedirect(state, redirect);\n await startRedirectNavigation(redirect, redirectNavigation);\n return;\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[]\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported or fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n let redirectNavigation = getLoaderRedirect(state, result);\n await startRedirectNavigation(result, redirectNavigation);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n redirect: RedirectResult,\n navigation: Navigation,\n replace?: boolean\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n invariant(\n navigation.location,\n \"Expected a location on the redirect navigation\"\n );\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n await startNavigation(redirectHistoryAction, navigation.location, {\n overrideNavigation: navigation,\n });\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createRequest(href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nconst validActionMethods = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\nconst validRequestMethods = new Set([\"GET\", \"HEAD\", ...validActionMethods]);\n\nexport function unstable_createStaticHandler(\n routes: AgnosticRouteObject[]\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to unstable_createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request\n ): Promise {\n let url = new URL(request.url);\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location);\n\n if (!validRequestMethods.has(request.method)) {\n let {\n matches: methodNotAllowedMatches,\n route,\n error,\n } = getMethodNotAllowedMatches(dataRoutes);\n return {\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n } else if (!matches) {\n let {\n matches: notFoundMatches,\n route,\n error,\n } = getNotFoundMatches(dataRoutes);\n return {\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n let result = await queryImpl(request, location, matches);\n if (result instanceof Response) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated thrown Response (such as a\n * 404 or 405) will have a custom X-Remix-Router-Error: \"yes\" header on it\n * in order to differentiate from responses thrown from user actions/loaders.\n */\n async function queryRoute(request: Request, routeId?: string): Promise {\n let url = new URL(request.url);\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location);\n\n if (!validRequestMethods.has(request.method)) {\n throw createRouterErrorResponse(null, {\n status: 405,\n statusText: \"Method Not Allowed\",\n });\n } else if (!matches) {\n throw createRouterErrorResponse(null, {\n status: 404,\n statusText: \"Not Found\",\n });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (!match) {\n throw createRouterErrorResponse(null, {\n status: 404,\n statusText: \"Not Found\",\n });\n }\n\n let result = await queryImpl(request, location, matches, match);\n if (result instanceof Response) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n let routeData = [result.actionData, result.loaderData].find((v) => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (validActionMethods.has(request.method)) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(request, matches, routeMatch);\n return result instanceof Response\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n if (!actionMatch.route.action) {\n if (isRouteRequest) {\n throw createRouterErrorResponse(null, {\n status: 405,\n statusText: \"Method Not Allowed\",\n });\n }\n result = getMethodNotAllowedResult(request.url);\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n undefined, // Basename not currently supported in static handlers\n true,\n isRouteRequest\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: null,\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 500,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, undefined, {\n [boundaryMatch.route.id]: result.error,\n });\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(request, matches);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0) {\n return {\n matches,\n loaderData: {},\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n undefined, // Basename not currently supported in static handlers\n true,\n isRouteRequest\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n results.forEach((result) => {\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n });\n\n // Process and commit output from loaders\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError\n );\n\n return {\n ...context,\n matches,\n };\n }\n\n function createRouterErrorResponse(\n body: BodyInit | null | undefined,\n init: ResponseInit\n ) {\n return new Response(body, {\n ...init,\n headers: {\n ...init.headers,\n \"X-Remix-Router-Error\": \"yes\",\n },\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || (!(\"formMethod\" in opts) && !(\"formData\" in opts))) {\n return { path };\n }\n\n // Create a Submission on non-GET navigations\n if (opts.formMethod != null && opts.formMethod !== \"get\") {\n return {\n path,\n submission: {\n formMethod: opts.formMethod,\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n },\n };\n }\n\n // No formData to flatten for GET submission\n if (!opts.formData) {\n return { path };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: new ErrorResponse(\n 400,\n \"Bad Request\",\n \"Cannot submit binary form data using GET\"\n ),\n };\n }\n\n return { path: createPath(parsedPath) };\n}\n\nfunction getLoaderRedirect(\n state: RouterState,\n redirect: RedirectResult\n): Navigation {\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, redirect.location),\n formMethod: formMethod || undefined,\n formAction: formAction || undefined,\n formEncType: formEncType || undefined,\n formData: formData || undefined,\n };\n return navigation;\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : null;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = createURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename: string | undefined,\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params }),\n abortPromise,\n ]);\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (result instanceof Response) {\n let status = result.status;\n\n // Process redirects\n if (status >= 300 && status <= 399) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in redirects\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let requestPath = createURL(request.url).pathname;\n let resolvedLocation = resolveTo(location, routePathnames, requestPath);\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${result.headers.get(\"Location\")}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n if (contentType && contentType.startsWith(\"application/json\")) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\nfunction createRequest(\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds?: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = Object.assign(errors || {}, {\n [boundaryMatch.route.id]: error,\n });\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here\n if (pendingError) {\n errors = pendingError;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key, , match] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n throw new Error(\"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[]\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n matches.forEach((match) => {\n let id = match.route.id;\n if (newLoaderData[id] === undefined && loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n });\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(\n routes: AgnosticDataRouteObject[],\n status: number,\n statusText: string\n): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n error: ErrorResponse;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-${status}-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n error: new ErrorResponse(status, statusText, null),\n };\n}\n\nfunction getNotFoundMatches(routes: AgnosticDataRouteObject[]) {\n return getShortCircuitMatches(routes, 404, \"Not Found\");\n}\n\nfunction getMethodNotAllowedMatches(routes: AgnosticDataRouteObject[]) {\n return getShortCircuitMatches(routes, 405, \"Method Not Allowed\");\n}\n\nfunction getMethodNotAllowedResult(path: Location | string): ErrorResult {\n let href = typeof path === \"string\" ? path : createPath(path);\n console.warn(\n \"You're trying to submit to a route that does not have an action. To \" +\n \"fix this, please add an `action` function to the route for \" +\n `[${href}]`\n );\n return {\n type: ResultType.error,\n error: new ErrorResponse(405, \"Method Not Allowed\", \"\"),\n };\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!(result instanceof Response)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n obj.response instanceof Response &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\n// Contexts for data routers\nexport const DataStaticRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataStaticRouterContext.displayName = \"DataStaticRouterContext\";\n}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n DataStaticRouterContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n return (\n <>\n

Unhandled Thrown Error!

\n

{message}

\n {stack ?
{stack}
: null}\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors by\n providing your own \n errorElement props on \n <Route>\n

\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataStaticRouterContext = React.useContext(DataStaticRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataStaticRouterContext && match.route.errorElement) {\n dataStaticRouterContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = dataRouterState\n ? match.route.errorElement || \n : null;\n let getChildren = () => (\n \n {error\n ? errorElement\n : match.route.element !== undefined\n ? match.route.element\n : outlet}\n \n );\n // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n return dataRouterState && (match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useLoaderData must be used inside a RouteContext`);\n\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `useLoaderData can only be used on routes that contain a unique \"id\"`\n );\n\n return state.loaderData[thisRoute.route.id];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let route = React.useContext(RouteContext);\n let thisRoute = route.matches[route.matches.length - 1];\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n invariant(route, `useRouteError must be used inside a RouteContext`);\n invariant(\n thisRoute.route.id,\n `useRouteError can only be used on routes that contain a unique \"id\"`\n );\n\n // Otherwise look for errors from our data router state\n return state.errors?.[thisRoute.route.id];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n invariant,\n parsePath,\n stripBasename,\n warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n () => router.state,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n return (\n \n \n \n {router.state.initialized ? : fallbackElement}\n
\n \n \n );\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/routers/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let dataRouterState = React.useContext(DataRouterStateContext);\n let navigate = useNavigate();\n\n React.useEffect(() => {\n // Avoid kicking off multiple navigations if we're in the middle of a\n // data-router navigation, since components get re-rendered when we enter\n // a submitting/loading state\n if (dataRouterState && dataRouterState.navigation.state !== \"idle\") {\n return;\n }\n navigate(to, { replace, state, relative });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/routers/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n let dataRouterContext = React.useContext(DataRouterContext);\n // When in a DataRouterContext _without_ children, we use the router routes\n // directly. If we have children, then we're in a descendant tree and we\n // need to use child routes.\n let routes =\n dataRouterContext && !children\n ? (dataRouterContext.router.routes as DataRouteObject[])\n : createRoutesFromChildren(children);\n return useRoutes(routes, location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited): React.ReactElement;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n \n {children}\n \n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \" caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return ;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return ;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on \n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n if (typeof children === \"function\") {\n return children(data);\n }\n return <>{children};\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, parentPath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let treePath = [...parentPath, index];\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n hasErrorBoundary: element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\n/**\n * @private\n * Walk the route tree and add hasErrorBoundary if it's not provided, so that\n * users providing manual route arrays can just specify errorElement\n */\nexport function enhanceManualRouteObjects(\n routes: RouteObject[]\n): RouteObject[] {\n return routes.map((route) => {\n let routeClone = { ...route };\n if (routeClone.hasErrorBoundary == null) {\n routeClone.hasErrorBoundary = routeClone.errorElement != null;\n }\n if (routeClone.children) {\n routeClone.children = enhanceManualRouteObjects(routeClone.children);\n }\n return routeClone;\n });\n}\n","import type { FormEncType, FormMethod } from \"@remix-run/router\";\nimport type { RelativeRoutingType } from \"react-router\";\n\nexport const defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams\n) {\n let searchParams = createSearchParams(locationSearch);\n\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `
`.\n * Defaults to \"GET\".\n */\n method?: FormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n *\n * Note: It is assumed the path is already resolved. If you need to resolve a\n * relative path, use `useFormAction`.\n */\n action?: string;\n\n /**\n * The action URL used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n}\n\nexport function getFormSubmissionInfo(\n target:\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null,\n defaultAction: string,\n options: SubmitOptions\n): {\n url: URL;\n method: string;\n encType: string;\n formData: FormData;\n} {\n let method: string;\n let action: string;\n let encType: string;\n let formData: FormData;\n\n if (isFormElement(target)) {\n let submissionTrigger: HTMLButtonElement | HTMLInputElement = (\n options as any\n ).submissionTrigger;\n\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType =\n options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a \r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Login;\r\n","import React, { useContext } from \"react\";\r\nimport { useLocation, Navigate } from \"react-router-dom\";\r\nimport AuthContext from \"./AuthProvider\";\r\n\r\nconst RequireAuth = ({ children }: { children: JSX.Element }) => {\r\n let auth = useContext(AuthContext);\r\n let location = useLocation();\r\n\r\n if (!auth.isLoggedIn) {\r\n return ;\r\n }\r\n\r\n return children;\r\n};\r\n\r\nexport default RequireAuth;\r\n","import React, { useState } from \"react\";\r\nimport { Project } from \"../Interfaces/Project\";\r\ntype Props = {\r\n children: React.ReactElement | React.ReactElement[];\r\n};\r\n\r\nexport type ProjectsContextType = {\r\n projcts: Project[];\r\n getProjectById: (id: string) => Project | undefined;\r\n setPorjects: (projects: Project[]) => void;\r\n};\r\n\r\nexport const ProjectsContext = React.createContext(\r\n null\r\n);\r\n\r\nexport const ProjectsProvider: React.FC = ({ children }: Props) => {\r\n const [projcts, setProjects] = useState([]);\r\n\r\n const getProjectById = (id: string) => projcts.find((m) => m.id === id);\r\n const setPorjects = (projects: Project[]) => setProjects(projects);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { createSearchParams, useNavigate } from \"react-router-dom\";\r\nimport {\r\n ProjectsContext,\r\n ProjectsContextType,\r\n} from \"../context/projects-context\";\r\nimport { Project } from \"../Interfaces/Project\";\r\n\r\nconst BASE_URL = process.env.REACT_APP_API_URL;\r\nfunction AdminPage() {\r\n const [projects, setProjects] = useState([]);\r\n const { setPorjects } = React.useContext(\r\n ProjectsContext\r\n ) as ProjectsContextType;\r\n const navigate = useNavigate();\r\n const token = localStorage.getItem(\"token\");\r\n useEffect(() => {\r\n fetch(`${BASE_URL}/Admin`, {\r\n method: \"get\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n setProjects(data);\r\n setPorjects(data);\r\n });\r\n }, []);\r\n\r\n function createEdit(projectId?: string) {\r\n navigate({\r\n pathname: \"/create-edit-project\",\r\n search: projectId ? createSearchParams({ id: projectId }).toString() : \"\",\r\n });\r\n }\r\n\r\n function deleteProject(id: string) {\r\n const token = localStorage.getItem(\"token\");\r\n fetch(`${BASE_URL}/admin/${id}`, {\r\n method: \"delete\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n const projs = projects.filter((p) => p.id !== data.id);\r\n setProjects(projs);\r\n setPorjects(projs);\r\n });\r\n }\r\n\r\n function publishProject(id: string) {\r\n const token = localStorage.getItem(\"token\");\r\n fetch(`${BASE_URL}/Admin/${id}`, {\r\n method: \"put\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data: Project) => {\r\n const projs: Project[] = projects.map((p) =>\r\n p.id === data.id ? { ...p, ...{ showOnMain: data.showOnMain } } : p\r\n );\r\n setProjects(projs);\r\n setPorjects(projs);\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

\r\n Projects\r\n

\r\n
\r\n createEdit()}\r\n >\r\n Add project\r\n \r\n
\r\n {projects.map((project, i) => (\r\n \r\n \r\n
\r\n

\r\n {project.name}\r\n

\r\n
\r\n En description\r\n

\r\n {project.descriptionEn}{\" \"}\r\n

\r\n
\r\n
\r\n Fr description\r\n

\r\n {project.descriptionFr}{\" \"}\r\n

\r\n
\r\n
\r\n
Link
\r\n {project.projectLink}\r\n
\r\n
\r\n
\r\n
Category
\r\n {project.category}\r\n
\r\n
\r\n
Action
\r\n
\r\n createEdit(project.id)}\r\n >\r\n Edit project\r\n \r\n publishProject(project.id)}\r\n >\r\n {project.showOnMain ? \"Publish\" : \"Unpublish\"}\r\n \r\n deleteProject(project.id)}\r\n >\r\n Delete\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default AdminPage;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { SubmitHandler, useForm } from \"react-hook-form\";\r\nimport { useSearchParams } from \"react-router-dom\";\r\nimport {\r\n ProjectsContext,\r\n ProjectsContextType,\r\n} from \"../context/projects-context\";\r\nimport { Project } from \"../Interfaces/Project\";\r\ntype Props = {};\r\n\r\nconst CreateEditProject = (props: Props) => {\r\n const [searchparams] = useSearchParams();\r\n const [project, setProject] = useState();\r\n const [preview, setPreview] = useState();\r\n const [img, setImg] = useState();\r\n const projectId = searchparams.get(\"id\");\r\n const { getProjectById } = React.useContext(\r\n ProjectsContext\r\n ) as ProjectsContextType;\r\n\r\n const BASE_URL = process.env.REACT_APP_API_URL;\r\n const {\r\n handleSubmit,\r\n register,\r\n setValue,\r\n watch,\r\n formState: { errors },\r\n } = useForm();\r\n\r\n const categories: { key: string; value: number }[] = [\r\n { key: \"web\", value: 0 },\r\n { key: \"designe\", value: 1 },\r\n { key: \"moblie\", value: 2 },\r\n ];\r\n\r\n useEffect(() => {\r\n if (projectId) {\r\n const proj = getProjectById(projectId);\r\n if (proj) {\r\n fetch(`/content/images/${proj.images.name}`)\r\n .then((f) => {\r\n return f.blob();\r\n })\r\n .then((f) => {\r\n setImg(new File([f], proj.images.name));\r\n setProject(proj);\r\n });\r\n setValue(\"name\", project?.name || \"\");\r\n setValue(\"descriptionEn\", project?.descriptionEn || \"\");\r\n setValue(\"descriptionFr\", project?.descriptionFr || \"\");\r\n setValue(\"projectLink\", project?.projectLink || \"\");\r\n setValue(\"showOnMain\", project?.showOnMain || false);\r\n setValue(\"category\", project?.category!);\r\n }\r\n }\r\n }, [project, getProjectById, projectId]);\r\n\r\n const watchImg = watch(\"images.name\");\r\n\r\n useEffect(() => {\r\n if (watchImg) {\r\n const img = watchImg as unknown;\r\n const fileList = img as FileList;\r\n if (fileList.length > 0) setPreview(URL.createObjectURL(fileList[0]));\r\n }\r\n }, [watchImg]);\r\n\r\n function handleClick(e: any) {\r\n setPreview(URL.createObjectURL(e.target.files[0]));\r\n setValue(\"images.name\", e.target.files[0]);\r\n }\r\n\r\n const onSubmit: SubmitHandler = (formData) => {\r\n const formdata = new FormData();\r\n formdata.append(\"name\", formData.name);\r\n formdata.append(\"descriptionEn\", formData.descriptionEn);\r\n formdata.append(\"descriptionFr\", formData.descriptionFr);\r\n formdata.append(\"category\", formData.category.toString());\r\n formdata.append(\"showOnMain\", formData.showOnMain.toString());\r\n formdata.append(\"projectLink\", formData.projectLink);\r\n const token = localStorage.getItem(\"token\");\r\n if (!project?.id) {\r\n formdata.append(\"images\", formData.images.name);\r\n fetch(`${BASE_URL}/Admin`, {\r\n method: \"Post\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body: formdata,\r\n }).then((r) => console.log(r));\r\n } else {\r\n formdata.append(\"id\", project.id);\r\n formdata.append(\"images\", img!);\r\n fetch(`${BASE_URL}/Admin`, {\r\n method: \"Put\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body: formdata,\r\n }).then((r) => console.log(r));\r\n }\r\n };\r\n return (\r\n <>\r\n

\r\n Create edit Project\r\n

\r\n \r\n {!preview && project?.images.name && (\r\n \r\n )}\r\n {preview && \"img\"}\r\n \r\n Attache image\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n Save\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateEditProject;\r\n","import React, { useContext } from \"react\";\r\nimport logo from \"../assets/img/logo.svg\";\r\nimport AuthContext from \"../auth/AuthProvider\";\r\n\r\ntype Props = {\r\n children: React.ReactElement | React.ReactElement[];\r\n};\r\n\r\nconst AdminLayout: React.FC = ({ children }: Props) => {\r\n const authCtx = useContext(AuthContext);\r\n const logout = () => {\r\n if (authCtx.logout) authCtx.logout();\r\n };\r\n return (\r\n
\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nexport default AdminLayout;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom/client\";\r\nimport \"./index.css\";\r\nimport App from \"./pages/App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\";\r\nimport \"./i18n\";\r\nimport { AuthContextProvider } from \"./auth/AuthProvider\";\r\nimport { BrowserRouter, Route, Routes } from \"react-router-dom\";\r\nimport Login from \"./pages/Login\";\r\nimport RequireAuth from \"./auth/GuardedRoute\";\r\nimport AdminPage from \"./pages/AdminPage\";\r\nimport CreateEditProject from \"./pages/CreateEditProject\";\r\nimport AdminLayout from \"./components/AdminLayout\";\r\nimport { ProjectsProvider } from \"./context/projects-context\";\r\nconst root = ReactDOM.createRoot(\r\n document.getElementById(\"root\") as HTMLElement\r\n);\r\nroot.render(\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n } />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","p","a","b","c","arguments","length","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","createElement","ja","Object","prototype","hasOwnProperty","ka","la","ma","v","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","forEach","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","call","test","oa","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","stack","trim","match","Na","Oa","prepareStackTrace","defineProperty","set","Reflect","construct","l","h","k","displayName","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","Array","isArray","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","indexOf","setProperty","keys","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","push","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","apply","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","key","String","fromCharCode","code","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","join","uh","vh","index","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","error","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","css","insertAt","head","getElementsByTagName","styleSheet","cssText","Cursor","_a","_b","cursorStyle","_c","cursorColor","_jsx","className","styles","__assign","isDeleting","speed","count","useTypewriter","words","loop","_d","typeSpeed","_e","deleteSpeed","_f","delaySpeed","onLoopDone","onType","_g","reducer","_h","loops","isDone","handleTyping","fullWord","typing","EMAIL_ICON","icon","mask","telegram","_default","bandsintown","behance","clubhouse","codepen","discord","dribbble","dropbox","facebook","fivehundredpix","flickr","foursquare","github","gitlab","google","google_play","groupme","instagram","itunes","linkedin","linktree","mailto","medium","meetup","pinterest","pixiv","ravelry","rdio","reddit","rss","sharethis","slack","smugmug","snapchat","soundcloud","spotify","squarespace","stackoverflow","tiktok","tumblr","twitch","twitter","upwork","vevo","vimeo","vine","vsco","wechat","whatsapp","yelp","youtube","obj","_react","__esModule","default","_styles","_extends","i","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref","networkKey","socialSvgContent","cx","cy","_propTypes","_interopRequireDefault","_networks","_defineProperty","writable","getStyle","fgColor","ownKeys","filter","sym","_objectSpread","fill","Icon","_ref2","iconFor","propTypes","bgColor","socialSvgMask","colorFor","Mask","rest","maskFor","keyTo","_networksDb","keyFor","keysFor","urls","map","KEYS","DEFAULT_KEY","arr","KEYS_REGEX","RegExp","sort","pre","post","_socialIcon","SocialIcon","_background","_icon","_mask","_typeof","network","label","defaultSVG","getNetworkKey","socialIcon","socialContainer","socialSvg","viewBox","position","verticalAlign","borderRadius","fillRule","msTransition","OTransition","MozTransition","WebkitTransition","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","webpackContext","req","webpackContextResolve","__webpack_require__","o","__webpack_module_cache__","moduleId","cachedModule","undefined","__webpack_modules__","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","def","getOwnPropertyNames","definition","chunkId","all","reduce","promises","miniCssF","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","fn","toStringTag","installedChunks","j","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self","enumerableOnly","symbols","_objectSpread2","getOwnPropertyDescriptors","defineProperties","MotionConfigContext","transformPagePoint","isStatic","reducedMotion","MotionContext","PresenceContext","isBrowser","useIsomorphicLayoutEffect","LazyContext","strict","useVisualElement","visualState","createVisualElement","parent","visualElement","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","renderer","presenceId","blockInitialAnimation","initial","animationState","animateChanges","notify","isRefObject","isVariantLabel","isAnimationControls","variantProps","isControllingVariants","animate","isVariantNode","Boolean","variants","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","createDefinition","propNames","isEnabled","featureDefinitions","measureLayout","exit","drag","hover","tap","pan","inView","useConstant","init","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","LayoutGroupContext","Constructor","TypeError","_defineProperties","descriptor","protoProps","staticProps","_setPrototypeOf","setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","sham","Proxy","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","result","Super","NewTarget","VisualElementHandler","setProps","React__default","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","projectionNodeConstructor","useRender","useVisualState","features","loadFeatures","ForwardRefComponent","externalRef","configAndProps","layoutId","useLayoutId","projectionId","lazyStrictMode","initialLayoutGroupConfig","React","mount","useMotionRef","layoutGroupId","createMotionProxy","createConfig","custom","customMotionComponentConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","transformPropOrder","transformProps","isForcedMotionValue","layout","startsWith","isMotionValue","getVelocity","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","from","allowArrayLike","it","normalCompletion","didErr","step","_e2","translateAlias","transformPerspective","sortTransformProps","isCSSVariable","getValueAsType","transform","clamp","max","sanitize","Number","toFixed","floatRegex","colorRegex","singleColorRegex","isString","createUnitType","unit","endsWith","parse","parseFloat","degrees","percent","px","vw","progressPercentage","alpha","scale","int","round","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","right","bottom","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","perspective","originX","originY","originZ","numOctaves","buildHTMLStyles","latestValues","transformTemplate","vars","transformKeys","transformOrigin","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","transformIsDefault","enableHardwareAcceleration","allowTransformNone","transformString","buildTransform","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","transformValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","validMotionProps","isValidMotionProp","isValidProp","shouldForward","filterProps","isDom","forwardMotionProps","filteredProps","calcOrigin","origin","dashKeys","camelKeys","buildSVGAttrs","attrX","attrY","pathLength","pathSpacing","pathOffset","attrs","dimensions","pxOriginX","pxOriginY","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","createSvgRenderState","useSVGProps","visualProps","rawStyles","createUseRender","elementProps","camelToDash","str","renderHTML","styleProp","projection","getProjectionStyles","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","resolveVariantFromProps","currentValues","currentVelocity","isKeyframesTarget","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","mix","toValue","isCustomValue","makeUseVisualState","config","make","createRenderState","onMount","makeLatestValues","makeState","scrapeMotionValues","values","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","resolved","transitionEnd","valueTarget","AnimationType","svgMotionConfig","getBBox","getBoundingClientRect","htmlMotionConfig","addDomEvent","eventName","handler","useDomEvent","isMouseEvent","PointerEvent","MouseEvent","isTouchEvent","filterPrimaryPointer","eventHandler","defaultPagePoint","pointFromTouch","pointType","primaryTouch","point","pointFromMouse","extractEventInfo","wrapHandler","shouldFilterPrimaryPointer","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","onpointerdown","ontouchstart","onmousedown","addPointerEvent","usePointerEvent","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal","openVertical","isDragActive","openGestureLock","createHoverEvent","isActive","info","setActive","Hover","isNodeOrChild","parentElement","useUnmountEffect","combineFunctions","pipe","transformers","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","observeIntersection","rootInteresectionObserver","root","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","observe","unobserve","thresholdNames","useIntersectionObserver","shouldObserve","rootMargin","amount","once","threshold","isIntersecting","isInView","hasEnteredView","InView","getProps","onViewportEnter","onViewportLeave","useMissingIntersectionObserver","requestAnimationFrame","makeRenderlessComponent","hook","gestureAnimations","whileInView","viewport","onTap","onTapStart","onTapCancel","whileTap","hasPressListeners","isPressing","cancelPointerEndListeners","eventOptions","onPointerDown","removePointerEndListener","checkPointerEnd","Tap","onPointerUp","onPointerCancel","whileFocus","Focus","onHoverStart","onHoverEnd","whileHover","_arrayWithHoles","_nonIterableRest","_i","_s","_arr","_n","usePresence","isPresent","onExitComplete","register","_iterableToArray","iter","shallowCompare","prevLength","__rest","safeMin","findSpring","envelope","derivative","duration","bounce","velocity","mass","dampingRatio","undampedFreq","exponentialDecay","delta","calcAngularFreq","exp","pow","initialGuess","approximateRoot","stiffness","damping","sqrt","durationKeys","physicsKeys","isSpringType","spring","to","restSpeed","restDelta","springOptions","isResolvedFromDuration","derived","getSpringOptions","resolveSpring","zero","resolveVelocity","createSpring","initialVelocity","initialDelta","undampedAngularFreq","abs","angularFreq","sin","cos","dampedAngularFreq","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","_t","progress","toFromDifference","isColorString","testProp","splitColor","aName","bName","cName","clampRgbUnit","rgbUnit","rgba","red","green","blue","alpha$1","hex","substr","parseInt","hsla","hue","saturation","lightness","hueToRgb","hslaToRgba","mixLinearColor","fromExpo","toExpo","colorTypes","getColorType","find","notAnimatable","mixColor","fromColorType","toColorType","fromColor","toColor","blended","colorToken","numberToken","analyse","numColors","colors","numbers","tokenised","createTransformer","numValues","output","convertNumbersToZero","complex","getAnimatableNone","parsed","transformer","isNum","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","numNumbers","numRGB","numHSL","template","originStats","targetStats","mixNumber","createMixers","ease","customMixer","mixers","mixerFactory","detectMixerFactory","numMixers","mixer","easingFunction","fastInterpolate","slowInterpolate","inputLength","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","interpolate","isClamp","reverse","interpolator","power","reverseEasing","easing","mirrorEasing","createBackIn","linear","easeIn","easeOut","easeInOut","circIn","acos","circOut","circInOut","backIn","backOut","backInOut","anticipate","backEasing","createAnticipate","bounceOut","p2","bounceIn","defaultEasing","keyframes","times","convertOffsetToTimes","_value","defaultOffset","createInterpolator","types","decay","timeConstant","modifyTarget","amplitude","ideal","defaultTimestep","getCurrentTime","onNextFrame","useDefaultElapsed","runNextFrame","isProcessing","frame","timestamp","stepsOrder","steps","acc","toRun","toRunNextFrame","numToRun","flushNextFrame","toKeepAlive","schedule","addToCurrentFrame","buffer","cancel","process","frameData","createRenderStep","sync","keepAlive","immediate","startLoop","cancelSync","processStep","stepId","processFrame","getFrameData","loopElapsed","elapsed","framesync","update","passTimestamp","stop","driverControls","latest","interpolateFromNumber","autoplay","driver","repeatMax","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate","repeatCount","computedDuration","isComplete","isForwardPlayback","animator","detectAnimationFromOptions","reverseElapsed","hasRepeatDelayElapsed","velocityPerSecond","frameDuration","secondsToMilliseconds","seconds","a1","a2","calcBezier","getSlope","kSampleStepSize","cubicBezier","mX1","mY1","mX2","mY2","sampleValues","Float32Array","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","easingLookup","bounceInOut","easingDefinitionToFunction","isAnimatable","underDampedSpring","criticallyDampedSpring","linearTween","defaultTransitions","backgroundColor","maxDefaults","applyDefaultFilter","functionRegex","functions","defaultValueTypes","outlineColor","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","instantAnimationState","checkElapsed","read","convertTransitionToAnimationOptions","yoyo","flip","isEasingArray","getDelayFromTransition","getValueTransition","getPopmotionAnimationOptions","valueKey","hydrateKeyframes","when","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","getAnimation","valueTransition","isTargetAnimatable","isZero","getZeroUnit","isOriginAnimatable","currentAnimation","bounceStiffness","bounceDamping","isOutOfBounds","boundaryNearest","startAnimation","startSpring","boundary","heading","inertia","finalTarget","potentialUnitType","controls","cancelDelay","delayBy","isNumericalString","isZeroValueString","addUniqueItem","item","removeItem","SubscriptionManager","subscriptions","numSubscriptions","MotionValue","timeDelta","lastUpdated","updateSubscribers","velocityUpdateSubscribers","renderSubscribers","canTrackVelocity","updateAndNotify","scheduleVelocityCheck","getSize","velocityCheck","hasAnimated","subscription","clear","passiveEffect","stopAnimation","clearAnimation","motionValue","testValueType","dimensionValueTypes","findDimensionValueType","valueTypes","findValueType","resolveVariant","getCurrent","setMotionValue","hasValue","addValue","setTarget","makeTargetAnimatable","getOriginFromTransition","isWillChangeMotionValue","animateVariant","variant","getDefaultTransition","transitionOverride","animateTarget","getChildAnimations","variantChildren","forwardDelay","animateChildren","first","willChange","animations","animationTypeState","getState","shouldBlockAnimation","shouldReduceMotion","remove","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","sortNodePosition","protectedKeys","needsAnimating","shouldBlock","variantPriorityOrder","Animate","Drag","Exit","reversePriorityOrder","numAnimationTypes","animateList","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","createState","isInitialRender","buildResolvedTypeValues","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","variantDidChange","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setAnimateFunction","makeAnimator","subscribe","safeToRemove","isPoint","isPoint3D","distance1D","xDelta","yDelta","zDelta","PanSession","handlers","startEvent","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","history","isPanStarted","isDistancePastThreshold","onStart","onMove","handlePointerMove","transformPoint","handlePointerUp","onEnd","onSessionEnd","panInfo","initialInfo","onSessionStart","removeListeners","subtractPoint","lastDevicePoint","startDevicePoint","timestampedPoint","lastPoint","calcLength","axis","isNear","maxDistance","calcAxisDelta","originPoint","translate","calcBoxDelta","calcRelativeAxis","relative","calcRelativeAxisPosition","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","box","translateAxis","transformAxis","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","transformBox","measureViewportBox","topLeft","bottomRight","transformBoxPoints","elementDragControls","VisualElementDragControls","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","dragPropagation","onDragStart","resolveConstraints","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","dragDirectionLock","onDirectionLock","onDrag","getCurrentDirection","updateAxis","panSession","getTransformPagePoint","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","dragConstraints","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","scroll","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","dragMomentum","dragTransition","dragSnapToOrigin","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","dragKey","externalMotionValue","boxProgress","sourceLength","targetLength","updateScroll","updateLayout","stopPointerListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","scalePositionWithinConstraints","stopLayoutUpdateListener","hasLayoutChanged","direction","lockThreshold","onPan","onPanStart","onPanEnd","onPanSessionStart","hasPanEvents","updateHandlers","groupDragControls","dragControls","addListeners","cssVariableRegex","parseCSSVariable","exec","getVariableValue","depth","token","getComputedStyle","getPropertyValue","resolveCSSVariables","Element","BoundingBoxDimension","positionalKeys","isPositionalKey","setAndResetVelocity","isNumOrPxType","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","nonTranslationalTransformKeys","removeNonTranslationalTransform","removedTransforms","positionalValues","convertChangedValueTypes","changedKeys","originBbox","elementComputedStyle","setStaticValue","targetBbox","unitConversion","hasPositionalKey","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","toType","fromType","numKeyframes","fromIndex","scrollY","pageYOffset","convertedTarget","scrollTo","checkAndConvertChangedValueTypes","prefersReducedMotion","hasReducedMotionListener","featureNames","numFeatures","propEventHandlers","VisualElement","valueSubscriptions","prevMotionValues","events","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","scheduleRender","baseTarget","initialValues","initialMotionValues","_props","removeFromVariantTree","addVariantChild","bindToMotionValue","matchMedia","motionMediaQuery","setReducedMotionPreferences","matches","addListener","initPrefersReducedMotion","valueIsTransform","removeOnChange","onChange","latestValue","isTransformDirty","removeOnRenderRequest","onRenderRequest","other","sortInstanceNodePosition","renderedProps","isStrict","ProjectionNodeConstructor","layoutScroll","setOptions","alwaysMeasureLayout","animationType","initialPromotionConfig","build","measureInstanceViewportBox","canMutate","makeTargetAnimatableFromInstance","on","nextValue","prevValue","existingValue","getStaticValue","removeValue","updateMotionValuesFromProps","getClosestVariantNode","startAtParent","numVariantProps","closestVariantNode","removeValueFromRenderState","readValueFromInstance","valueFromInitial","getBaseTargetFromProps","args","DOMVisualElement","transitionOrigin","getOrigin","newValueKeys","numNewValues","targetValue","readValue","setBaseTarget","checkTargetForNewValues","parseDomVariant","HTMLVisualElement","defaultType","computedStyle","SVGVisualElement","createDomVisualElement","pixelsToPercent","pixels","correctBorderRadius","correct","varToken","correctBoxShadow","treeScale","projectionDelta","original","containsCSSVariables","cssVariables","shadow","xScale","yScale","averageScale","cssVariable","MeasureLayoutWithContext","correctors","layoutGroup","switchLayoutGroup","defaultScaleCorrectors","group","didUpdate","prevProps","layoutDependency","willUpdate","promote","relegate","getStack","members","isLead","promoteContext","scheduleCheckAfterUnmount","deregister","applyTo","boxShadow","layoutFeatures","isAnimating","borders","numBorders","asNumber","isPx","mixValues","follow","lead","shouldCrossfadeOpacity","isOnlyMember","easeCrossfadeIn","opacityExit","easeCrossfadeOut","borderLabel","followRadius","getRadius","leadRadius","radiusName","compress","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisTransforms","sourceAxis","removeAxisDelta","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEquals","NodeStack","prevLead","indexOfNode","findIndex","member","preserveFollowOpacity","show","resumeFrom","preserveOpacity","snapshot","animationValues","isUpdating","isLayoutDirty","crossfade","hide","resumingFrom","buildProjectionTransform","latestTransform","xTranslate","yTranslate","elementScaleX","elementScaleY","compareByDepth","FlatTree","isDirty","transformAxes","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","elementId","animationId","isTreeAnimating","isProjectionDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","potentialNodes","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","propagateDirtyNodes","resolveTargetDelta","calcProjection","hasProjected","isVisible","animationProgress","sharedNodes","path","registerPotentialNode","subscriptionManager","SVGElement","resizeUnblockUpdate","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","setAnimationOrigin","animationOptions","preRender","isUpdateBlocked","resetRotation","shouldNotifyListeners","startUpdate","prevTransformTemplateValue","updateSnapshot","notifyListeners","unblockUpdate","clearMeasurements","mountNodeEarly","resetTransformStyle","notifyLayoutUpdate","clearSnapshot","removeLeadSnapshots","measure","prevLayout","layoutCorrected","phase","needsMeasurement","isRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundBox","measuredBox","boxWithoutScroll","rootScroll","transformOnly","withTransforms","boxWithoutTransform","targetDelta","scheduleUpdateProjection","getLead","attemptToResolveRelativeTarget","relativeParent","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","applyTransform","isShared","canSkip","pendingAnimation","treePath","isSharedTransition","treeLength","applyTreeDeltas","projectionDeltaWithTransform","prevTreeScaleX","prevTreeScaleY","prevProjectionTransform","projectionTransform","notifyAll","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","hasOpacityCrossfade","mixTargetDelta","mixAxisDelta","setTargetDelta","mixBox","completeAnimation","exitAnimationComplete","shouldAnimatePositionOnly","xLength","yLength","shouldPreserveFollowOpacity","hasRotate","resetValues","visibility","pointerEvents","emptyStyles","valuesToRender","applyTransformsToTarget","corrected","num","hasListeners","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","removeLeadSnapshot","mixAxis","searchNode","querySelector","roundAxis","isCloseTo","DocumentProjectionNode","HTMLProjectionNode","documentNode","featureBundle","motion","createDomMotionConfig","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","I18nContext","getDefaults","ReportNamespaces","_classCallCheck","usedNamespaces","_createClass","namespaces","_this","getI18n","initReactI18next","setDefaults","react","setI18n","warn","_console","_len","_key","alreadyWarned","warnOnce","_len2","_key2","loadNamespaces","i18n","isInitialized","initialized","off","oldI18nextHasLoadedNamespace","lng","languages","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","usePrevious","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","wait","i18nOptions","keyPrefix","addUsedNamespaces","initializedStoreOnce","every","getT","getFixedT","nsMode","_useState","_useState2","_slicedToArray","setT","joinedNS","previousJoinedNS","boundReset","store","isInitial","ret","div","svgRef","title","titleId","xmlns","clipRule","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","val","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","isObjectType","isNullOrUndefined","isDateObject","isObject","isCheckBoxInput","names","getNodeParentName","compact","isUndefined","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","formState","control","localProxyFormState","defaultValues","_defaultValues","_proxyFormState","formStateData","isEmptyObject","useSubscribe","subject","unsubscribe","_names","formValues","isGlobal","watch","fieldName","watchAll","HTMLElement","cloneObject","copy","isWeb","Blob","FileList","tempObject","prototypeCopy","isPlainObject","validateAllFieldCriteria","errors","tempPath","isKey","stringToPath","lastIndex","newValue","objValue","focusFieldBy","fields","fieldsNames","field","currentField","isBlurEvent","watchName","fieldArrayErrors","defaultResult","isValid","validResult","option","attributes","defaultReturn","previous","getValidateError","isMessage","isBoolean","validationData","isRegex","inputValue","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","pattern","validate","valueAsNumber","inputRef","setCustomValidity","reportValidity","isRadio","isRadioInput","isCheckBox","isRadioOrCheckbox","isEmpty","isFileInput","appendErrorsCurry","appendErrors","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","getCheckboxValue","getRadioValue","getValueAndMessage","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","exceedMin","valueNumber","maxLengthOutput","minLengthOutput","patternValue","isFunction","validateError","validationResult","validateField","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isEmptyArray","unset","previousObjRef","updatePath","childObject","baseGet","objectRef","currentPaths","currentPathsLength","createSubject","_observers","observer","deepEqual","object1","object2","isPrimitive","getTime","keys1","keys2","val1","val2","owner","isHTMLElement","isConnected","markFieldsDirty","isParentNodeArray","objectHasFunction","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","setValueAs","NaN","getFieldValue","files","isMultipleSelect","selectedOptions","getFieldValueAs","_fields","criteriaMode","rule","schemaErrorLookup","foundError","isTouched","isSubmitted","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","_options","_formState","submitCount","isValidating","isSubmitting","isSubmitSuccessful","touchedFields","dirtyFields","_formValues","shouldUnregister","_stateFlags","unMount","timer","validateFields","_subjects","validationModeBeforeSubmit","getValidationModes","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","debounce","_updateValid","resolver","_executeSchema","executeBuiltInValidation","valid","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","argA","argB","unsetEmptyArray","getDirtyFields","_getDirty","updateErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","shouldUpdateValid","delayError","updatedFormState","getResolverOptions","executeSchemaAndUpdateState","shouldOnlyCheckValid","isFieldArrayRoot","fieldError","updateFieldArrayRootError","_removeUnmounted","live","unregister","getValues","_getWatch","generateWatchOutput","_getFieldArray","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","cloneValue","isWatched","getEventValue","shouldSkipValidation","hasValidation","skipValidation","watched","onBlur","previousErrorLookupResult","errorLookupResult","buildInValidationResult","fieldNames","convertToArrayPayload","shouldFocus","getFieldState","invalid","clearErrors","inputName","setError","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","getRuleValue","fieldRef","radioOrCheckbox","isNameInFieldArray","_focusError","handleSubmit","onValid","onInvalid","hasNoPromiseError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepDirtyValues","closest","keepSubmitCount","keepIsSubmitted","keepErrors","setFocus","shouldSelect","select","useForm","_formControl","updateFormState","shouldRenderFormState","getProxyFormState","GoogleRecaptchaError","cleanGoogleRecaptcha","scriptId","container","nodeBadge","customBadge","getElementById","cleanBadge","___grecaptcha_cfg","cleanGstaticRecaptchaScript","logWarningMessage","GoogleReCaptchaContext","executeRecaptcha","GoogleReCaptchaProvider","reCaptchaKey","useEnterprise","useRecaptchaNet","scriptProps","language","greCaptchaInstance","setGreCaptchaInstance","clientId","scriptPropsJson","parametersJson","parameters","onLoadCallbackName","grecaptcha","enterprise","params","badge","sitekey","onLoad","nonce","defer","appendTo","googleRecaptchaSrc","js","injectGoogleReCaptchaScript","SCRIPT_NOT_AVAILABLE","execute","googleReCaptchaContextValue","useGoogleReCaptcha","AsyncMode","require$$0","require$$1","MEMO_STATICS","TYPE_STATICS","reactIs","ForwardRef","Memo","submitted","setSubmitted","submitEnquiryForm","formData","fetch","headers","Accept","response","rel","onSubmit","placeholder","Header","lang","changeLanguage","BackgroundCircles","Hero","logo","alt","projects","setProjects","contentWrapper","sideScroll","scrollAmount","slideTimer","setInterval","clearInterval","json","project","images","projectLink","description","innerWidth","leftArrow","rightArrow","directionLeft","skills","knowledge","skill","logoName","companyName","techStack","tech","startYear","endYear","keyPoints","points","experiences","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","consoleLogger","Logger","concreteLogger","prefix","logger","debug","forward","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","cloned","_cloned","res","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","userAgent","chars","ownKeys$1","_objectSpread$1","deepFind","keySeparator","paths","joinedPath","ResourceStore","_EventEmitter","_super","silent","addNamespaces","emit","addResource","deep","pack","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","interpolation","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","nestingRegexp","parts","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","one","two","few","many","createRules","rules","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","parseFormatStr","formatStr","formatName","formatOptions","optStr","currency","opt","_opt$split2","_toArray","createCachedFormatter","formatter","Formatter","formats","NumberFormat","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","_format","mem","_parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","noop","bindMemberFunctions","inst","I18n","modules","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","usedCallback","append","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","opts","resultKey","_this$translator","_this$translator2","exists","_this6","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","membersToCopy","createInstance","reloadResources","use","setDefaultNamespace","loadLanguages","each","defaults","hasXMLHttpRequest","XMLHttpRequest","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","global","ActiveXObject","fetchNode","addQueryString","queryString","paramName","fetchIt","fetchOptions","statusText","status","omitFetchOptions","queryStringParams","customHeaders","reqOptions","requestOptions","requestWithFetch","open","crossDomain","setRequestHeader","withCredentials","overrideMimeType","onreadystatechange","readyState","responseText","requestWithXmlHttpRequest","loadPath","addPath","allowMultiLoading","parsePayload","reloadInterval","credentials","Backend","allOptions","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","loadUrl","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","Action","AuthContext","isLoggedIn","login","logout","AuthContextProvider","initToken","localStorage","getItem","setToken","ContextValue","setItem","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","ResultType","PopStateEventType","getHistoryState","usr","createLocation","pathname","hash","parsePath","parsedPath","hashIndex","searchIndex","createURL","createPath","URL","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","Pop","handlePop","listen","encodeLocation","Push","historyState","pushState","Replace","replaceState","go","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","route","relativePath","caseSensitive","invariant","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","warning","paramNames","regexpSource","_","compilePath","matcher","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","cond","getInvalidPathError","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","AbortedDeferredError","ErrorResponse","isRouteErrorResponse","validActionMethods","checkIfSnapshotChanged","latestGetSnapshot","DataStaticRouterContext","DataRouterContext","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","useLocation","useNavigate","routePathnamesJson","activeRef","DefaultErrorElement","useDataRouterState","DataRouterStateHook","UseRouteError","thisRoute","useRouteError","lightgrey","preStyles","codeStyles","fontStyle","DataRouterHook","RenderErrorBoundary","errorInfo","component","RenderedRoute","routeContext","dataStaticRouterContext","errorElement","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","reduceRight","getChildren","hookName","AwaitRenderStatus","Navigate","_ref3","navigate","navigation","Route","Router","_ref4","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref5","dataRouterContext","dataRouterStateContext","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","router","createRoutesFromChildren","neverSettledPromise","loader","hasErrorBoundary","shouldRevalidate","createSearchParams","URLSearchParams","BrowserRouter","historyRef","useSearchParams","defaultInit","defaultSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getAll","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","userRef","errRef","user","setUser","pwd","setPwd","errMsg","setErrMsg","setSuccess","authCtx","accessToken","autoComplete","auth","ProjectsContext","ProjectsProvider","projcts","getProjectById","setPorjects","BASE_URL","createEdit","projectId","Authorization","descriptionEn","descriptionFr","category","projs","showOnMain","publishProject","deleteProject","searchparams","setProject","preview","setPreview","setImg","proj","blob","File","watchImg","fileList","createObjectURL","formdata","FormData","htmlFor","accept","cat","ReactDOM","reportWebVitals"],"sourceRoot":""}