{"version":3,"file":"static/js/main.1880024a.js","mappings":"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","sources":["../node_modules/arabic-digits/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.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-query/es/core/focusManager.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-query/es/core/queryObserver.js","../node_modules/react-query/es/react/QueryErrorResetBoundary.js","../node_modules/react-query/es/react/useQuery.js","../node_modules/react-query/es/react/useBaseQuery.js","../node_modules/react-query/es/react/utils.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","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/LottieClient/LottieClient.jsx","../node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.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/utils/KeyframesResolver.mjs","../node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","../node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","../node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/transform.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/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.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/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.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/geometry/models.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/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/projection/node/state.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/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.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/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.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/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../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/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/motion/utils/use-motion-ref.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/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/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.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/motion/utils/is-forced-motion-value.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/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../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/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.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/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/components/create-factory.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.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/render/components/motion/proxy.mjs","../node_modules/framer-motion/dist/es/render/components/motion/create.mjs","components/Hero/Hero.jsx","components/SurahCard/SurahCard.jsx","components/LoadingLottie/LoadingLottie.jsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","lib/getAllSurahs.jsx","components/Learn/Learn.jsx","components/Home/Home.jsx","context/store.jsx","components/AyatNav/AyatNav.jsx","components/CurrSurah/CurrSurah.jsx","components/RecitersMenu/RecitersMenu.jsx","components/Layout/Layout.jsx","../node_modules/react-spinners/esm/helpers/unitConverter.js","../node_modules/react-spinners/esm/helpers/animation.js","../node_modules/react-spinners/esm/MoonLoader.js","components/PlayBtn/PlayBtn.jsx","components/AyahUthmani/AyahUthmani.jsx","../node_modules/react-spinners/esm/PuffLoader.js","components/MainLottieAudio/MainLottieAudio.jsx","components/Video/Video.jsx","components/NotFound/NotFound.jsx","App.jsx","reportWebVitals.js","index.js"],"sourcesContent":["\"use strict\";\nexports.__esModule = true;\nexports.hasArabic = exports.fromArabic = exports.toArabic = void 0;\nvar engishDigits = /[0-9]/g;\nvar arabicDigits = /[٠-٩]/g;\nvar notEngishDigits = /[^0-9]/g;\nvar notArabicDigits = /[^٠-٩]/g;\nvar gap = 1584; // charcode gap between 0 and ٠;\n/**\n *\n * @param num number or a string that contain the number to be converted\n * @param intOnly remove any character that is not a digit\n */\nexports.toArabic = function (num, intOnly) {\n if (intOnly === void 0) { intOnly = false; }\n if (intOnly) {\n num = String(num).replace(notEngishDigits, \"\");\n }\n return String(num)\n .replace(engishDigits, function (match) { return String.fromCharCode(match.charCodeAt(0) + gap); });\n};\n/**\n *\n * @param num a string that contain the number to be converted\n * @param intOnly remove any character that is not a digit\n */\nexports.fromArabic = function (num, intOnly) {\n if (intOnly === void 0) { intOnly = false; }\n if (intOnly) {\n num = String(num).replace(notArabicDigits, \"\");\n }\n return String(num)\n .replace(arabicDigits, function (match) { return String.fromCharCode(match.charCodeAt(0) - gap); });\n};\n/**\n *\n * @param num a string that contain the number to be tested\n */\nexports.hasArabic = function (num) {\n return String(num).match(arabicDigits);\n};\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; 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\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\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 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>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","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"53a75ae9\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"surahxsurah:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksurahxsurah\"] = self[\"webpackChunksurahxsurah\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: 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 statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: 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\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\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 * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\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\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let 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 (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\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, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n 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 ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\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 // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: 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 =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { 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 if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { 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 let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { 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 abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n 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(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\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 loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { 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 updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n 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 (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, 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) {\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 requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n 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(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\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 // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\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 requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\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 onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\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 internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\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 (opts.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 reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== 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 (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(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 (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n 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\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\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. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n 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, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

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