{"version":3,"file":"static/js/main.3db85b81.js","mappings":"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","sources":["../node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude","../node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js","../node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js","../node_modules/@bugsnag/browser/core/lib/es-utils/filter.js","../node_modules/@bugsnag/browser/core/lib/es-utils/includes.js","../node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js","../node_modules/@bugsnag/browser/core/lib/es-utils/keys.js","../node_modules/@bugsnag/browser/core/lib/validators/int-range.js","../node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js","../node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js","../node_modules/@bugsnag/browser/core/config.js","../node_modules/@bugsnag/browser/core/lib/es-utils/assign.js","../node_modules/@bugsnag/browser/core/lib/es-utils/map.js","../node_modules/@bugsnag/browser/dist/src/config.js","../node_modules/@bugsnag/browser/core/breadcrumb.js","../node_modules/@bugsnag/browser/core/node_modules/stackframe/stackframe.js","../node_modules/@bugsnag/browser/core/node_modules/error-stack-parser/error-stack-parser.js","../node_modules/@bugsnag/browser/core/lib/error-stack-parser.js","../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/safe-json-stringify/index.js","../node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js","../node_modules/@bugsnag/browser/core/lib/has-stack.js","../node_modules/@bugsnag/browser/core/node_modules/iserror/index.js","../node_modules/@bugsnag/browser/core/lib/iserror.js","../node_modules/@bugsnag/browser/core/lib/metadata-delegate.js","../node_modules/@bugsnag/browser/core/node_modules/stack-generator/stack-generator.js","../node_modules/@bugsnag/browser/core/event.js","../node_modules/@bugsnag/browser/core/lib/async-every.js","../node_modules/@bugsnag/browser/core/lib/callback-runner.js","../node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js","../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/pad.js","../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/fingerprint.browser.js","../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/index.js","../node_modules/@bugsnag/browser/core/session.js","../node_modules/@bugsnag/browser/core/client.js","../node_modules/@bugsnag/browser/core/lib/json-payload.js","../node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js","../node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js","../node_modules/@bugsnag/browser/plugin-app-duration/app.js","../node_modules/@bugsnag/browser/plugin-browser-context/context.js","../node_modules/@bugsnag/browser/plugin-browser-device/device.js","../node_modules/@bugsnag/browser/plugin-browser-request/request.js","../node_modules/@bugsnag/browser/plugin-browser-session/session.js","../node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js","../node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js","../node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js","../node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js","../node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js","../node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js","../node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js","../node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js","../node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js","../node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js","../node_modules/@bugsnag/browser/dist/src/notifier.js","../node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude","../node_modules/@bugsnag/js/browser/notifier.js","../node_modules/@bugsnag/plugin-react/dist/src/index.js","../node_modules/@semantic-ui-react/event-stack/lib/cjs/event-stack.production.js","../node_modules/@semantic-ui-react/event-stack/lib/index.js","../node_modules/exenv/index.js","../node_modules/invariant/browser.js","../node_modules/keyboard-key/src/keyboardKey.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/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.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/shallowequal/index.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/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/tslib/tslib.es6.js","../node_modules/ts-invariant/src/invariant.ts","../node_modules/@apollo/src/utilities/globals/maybe.ts","../node_modules/@apollo/src/utilities/globals/global.ts","../node_modules/@apollo/src/utilities/globals/DEV.ts","../node_modules/ts-invariant/process/index.js","../node_modules/graphql/polyfills/symbols.mjs","../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/instanceOf.mjs","../node_modules/graphql/language/source.mjs","../node_modules/@apollo/src/utilities/globals/fix-graphql.ts","../node_modules/@apollo/src/utilities/globals/index.ts","../node_modules/@apollo/src/utilities/common/canUse.ts","../node_modules/@apollo/src/react/context/ApolloContext.ts","../node_modules/@apollo/src/react/context/ApolloProvider.tsx","../node_modules/@remix-run/router/history.ts","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@remix-run/router/utils.ts","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","environment.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/graphql/jsutils/defineInspect.mjs","../node_modules/graphql/jsutils/invariant.mjs","../node_modules/graphql/language/ast.mjs","../node_modules/graphql/language/visitor.mjs","../node_modules/zen-observable-ts/module.js","../node_modules/@apollo/src/utilities/common/objects.ts","../node_modules/@apollo/src/utilities/graphql/fragments.ts","../node_modules/@apollo/src/utilities/graphql/storeUtils.ts","../node_modules/@apollo/src/utilities/graphql/getFromAST.ts","../node_modules/@apollo/src/link/core/ApolloLink.ts","../node_modules/@apollo/src/link/utils/createOperation.ts","../node_modules/@apollo/src/link/utils/transformOperation.ts","../node_modules/@apollo/src/link/utils/validateOperation.ts","../node_modules/@apollo/src/utilities/graphql/directives.ts","../node_modules/@apollo/src/link/http/serializeFetchParameter.ts","../node_modules/@apollo/src/link/http/iterators/nodeStream.ts","../node_modules/@apollo/src/link/http/iterators/reader.ts","../node_modules/@apollo/src/link/http/responseIterator.ts","../node_modules/@apollo/src/utilities/common/responseIterator.ts","../node_modules/@apollo/src/link/http/iterators/async.ts","../node_modules/@apollo/src/link/http/iterators/promise.ts","../node_modules/@apollo/src/link/utils/throwServerError.ts","../node_modules/@apollo/src/link/http/parseAndCheckHttpResponse.ts","../node_modules/graphql/language/blockString.mjs","../node_modules/graphql/language/printer.mjs","../node_modules/@apollo/src/link/http/selectHttpOptionsAndBody.ts","../node_modules/@apollo/src/link/utils/fromError.ts","../node_modules/@apollo/src/link/http/createHttpLink.ts","../node_modules/@apollo/src/link/http/checkFetcher.ts","../node_modules/@apollo/src/link/http/selectURI.ts","../node_modules/@apollo/src/link/http/createSignalIfSupported.ts","../node_modules/@apollo/src/link/http/rewriteURIForGET.ts","../node_modules/@apollo/src/link/core/execute.ts","../node_modules/@apollo/src/link/http/HttpLink.ts","../node_modules/@wry/equality/src/equality.ts","../node_modules/@apollo/src/utilities/common/arrays.ts","../node_modules/@apollo/src/utilities/common/mergeDeep.ts","../node_modules/@apollo/src/utilities/common/incrementalResult.ts","../node_modules/@wry/trie/src/trie.ts","../node_modules/@apollo/src/utilities/common/compact.ts","../node_modules/@apollo/src/cache/inmemory/helpers.ts","../node_modules/@apollo/src/cache/inmemory/object-canon.ts","../node_modules/@apollo/src/utilities/observables/asyncMap.ts","../node_modules/@apollo/src/utilities/common/errorHandling.ts","../node_modules/@apollo/src/utilities/common/filterInPlace.ts","../node_modules/@apollo/src/utilities/graphql/transform.ts","../node_modules/@apollo/src/utilities/common/makeUniqueId.ts","../node_modules/@apollo/src/utilities/observables/iteration.ts","../node_modules/@apollo/src/utilities/observables/subclassing.ts","../node_modules/@apollo/src/utilities/observables/Concast.ts","../node_modules/@apollo/src/errors/index.ts","../node_modules/@apollo/src/core/networkStatus.ts","../node_modules/@apollo/src/utilities/common/cloneDeep.ts","../node_modules/@apollo/src/core/ObservableQuery.ts","../node_modules/@wry/context/src/slot.ts","../node_modules/@wry/context/src/context.ts","../node_modules/optimism/src/cache.ts","../node_modules/optimism/src/context.ts","../node_modules/optimism/src/helpers.ts","../node_modules/optimism/src/entry.ts","../node_modules/optimism/src/dep.ts","../node_modules/optimism/src/index.ts","../node_modules/@apollo/src/cache/inmemory/reactiveVars.ts","../node_modules/@apollo/src/core/LocalState.ts","../node_modules/@apollo/src/core/QueryInfo.ts","../node_modules/@apollo/src/core/QueryManager.ts","../node_modules/@apollo/src/utilities/common/mergeOptions.ts","../node_modules/@apollo/src/core/ApolloClient.ts","../node_modules/@apollo/src/version.ts","../node_modules/@apollo/src/cache/core/cache.ts","../node_modules/@apollo/src/cache/core/types/common.ts","../node_modules/graphql/language/kinds.mjs","../node_modules/@apollo/src/utilities/common/maybeDeepFreeze.ts","../node_modules/@apollo/src/cache/inmemory/entityStore.ts","../node_modules/@apollo/src/cache/inmemory/readFromStore.ts","../node_modules/@apollo/src/cache/inmemory/key-extractor.ts","../node_modules/@apollo/src/cache/inmemory/policies.ts","../node_modules/@apollo/src/utilities/common/stringifyForDisplay.ts","../node_modules/@apollo/src/cache/inmemory/writeToStore.ts","../node_modules/@apollo/src/cache/inmemory/inMemoryCache.ts","gqlClient.ts","../node_modules/@apollo/src/link/context/index.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/semantic-ui-react/dist/es/lib/numberToWord.js","../node_modules/semantic-ui-react/dist/es/lib/classNameBuilders.js","../node_modules/semantic-ui-react/dist/es/lib/getUnhandledProps.js","../node_modules/semantic-ui-react/dist/es/lib/getElementType.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_baseSome.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/some.js","../node_modules/semantic-ui-react/dist/es/lib/childrenUtils.js","../node_modules/semantic-ui-react/dist/es/elements/Container/Container.js","components/IconLogo.tsx","webpack://@qualia/vuln-manager-frontend/./src/layouts/StandardAppLayout/components/AppFooter/AppFooter.module.css?8914","layouts/StandardAppLayout/components/AppFooter/AppFooter.tsx","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/graphql/language/location.mjs","../node_modules/graphql/language/printLocation.mjs","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/language/parser.mjs","../node_modules/graphql-tag/src/index.ts","../node_modules/@apollo/src/react/parser/index.ts","../node_modules/@apollo/src/react/hooks/useSyncExternalStore.ts","../node_modules/@apollo/src/react/hooks/useApolloClient.ts","../node_modules/@apollo/src/react/hooks/useQuery.ts","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_baseIsNaN.js","../node_modules/lodash-es/_strictIndexOf.js","../node_modules/lodash-es/_baseIndexOf.js","../node_modules/lodash-es/isString.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/_baseValues.js","../node_modules/lodash-es/values.js","../node_modules/lodash-es/includes.js","../node_modules/lodash-es/compact.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/lodash-es/_arrayEvery.js","../node_modules/lodash-es/_baseEvery.js","../node_modules/lodash-es/every.js","../node_modules/lodash-es/_arrayIncludes.js","../node_modules/lodash-es/_arrayIncludesWith.js","../node_modules/lodash-es/_baseDifference.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/without.js","../node_modules/lodash-es/_createFind.js","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/find.js","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/dropRight.js","../node_modules/lodash-es/isEmpty.js","../node_modules/lodash-es/_asciiSize.js","../node_modules/lodash-es/_hasUnicode.js","../node_modules/lodash-es/_unicodeSize.js","../node_modules/lodash-es/_stringSize.js","../node_modules/lodash-es/size.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/difference.js","../node_modules/lodash-es/noop.js","../node_modules/lodash-es/_createSet.js","../node_modules/lodash-es/_baseUniq.js","../node_modules/lodash-es/union.js","../node_modules/lodash-es/isUndefined.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_parent.js","../node_modules/lodash-es/_baseInvoke.js","../node_modules/lodash-es/invoke.js","../node_modules/lodash-es/isEqual.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_baseSet.js","../node_modules/lodash-es/_basePickBy.js","../node_modules/lodash-es/_basePick.js","../node_modules/lodash-es/flatten.js","../node_modules/lodash-es/_flatRest.js","../node_modules/lodash-es/pick.js","../node_modules/lodash-es/isNil.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@fluentui/react-component-ref/dist/es/utils.ts","../node_modules/@fluentui/react-component-ref/dist/es/RefFindNode.tsx","../node_modules/@fluentui/react-component-ref/dist/es/RefForward.tsx","../node_modules/@fluentui/react-component-ref/dist/es/Ref.tsx","../node_modules/lodash-es/_baseInRange.js","../node_modules/lodash-es/inRange.js","../node_modules/lodash-es/head.js","../node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js","../node_modules/semantic-ui-react/dist/es/lib/ModernAutoControlledComponent.js","../node_modules/lodash-es/uniq.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/isNumber.js","../node_modules/lodash-es/isBoolean.js","../node_modules/semantic-ui-react/dist/es/lib/factories.js","../node_modules/semantic-ui-react/dist/es/elements/Icon/IconGroup.js","../node_modules/semantic-ui-react/dist/es/elements/Icon/Icon.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/semantic-ui-react/dist/es/lib/htmlPropsUtils.js","../node_modules/semantic-ui-react/dist/es/lib/isBrowser.js","../node_modules/semantic-ui-react/dist/es/addons/Portal/PortalInner.js","../node_modules/semantic-ui-react/dist/es/addons/Portal/Portal.js","../node_modules/semantic-ui-react/dist/es/modules/Dimmer/DimmerDimmable.js","../node_modules/semantic-ui-react/dist/es/modules/Dimmer/DimmerInner.js","../node_modules/semantic-ui-react/dist/es/modules/Dimmer/Dimmer.js","../node_modules/semantic-ui-react/dist/es/elements/Image/ImageGroup.js","../node_modules/semantic-ui-react/dist/es/elements/Image/Image.js","../node_modules/semantic-ui-react/dist/es/elements/Label/LabelDetail.js","../node_modules/semantic-ui-react/dist/es/elements/Label/LabelGroup.js","../node_modules/semantic-ui-react/dist/es/elements/Label/Label.js","../node_modules/semantic-ui-react/dist/es/elements/Flag/Flag.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownDivider.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownItem.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownHeader.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownMenu.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownSearchInput.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/DropdownText.js","../node_modules/lodash-es/escapeRegExp.js","../node_modules/lodash-es/_basePropertyOf.js","../node_modules/lodash-es/_deburrLetter.js","../node_modules/lodash-es/deburr.js","../node_modules/lodash-es/_baseFilter.js","../node_modules/lodash-es/filter.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/utils/getMenuOptions.js","../node_modules/lodash-es/_arrayReduce.js","../node_modules/lodash-es/_baseReduce.js","../node_modules/lodash-es/reduce.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/utils/getSelectedIndex.js","../node_modules/semantic-ui-react/dist/es/modules/Dropdown/Dropdown.js","../node_modules/semantic-ui-react/dist/es/elements/Header/HeaderSubheader.js","../node_modules/semantic-ui-react/dist/es/elements/Header/HeaderContent.js","../node_modules/semantic-ui-react/dist/es/elements/Header/Header.js","components/Logo.tsx","webpack://@qualia/vuln-manager-frontend/./src/layouts/StandardAppLayout/components/AppHeader/AppHeader.module.css?e3a8","layouts/StandardAppLayout/components/AppHeader/AppHeader.tsx","webpack://@qualia/vuln-manager-frontend/./src/layouts/StandardAppLayout/StandardAppLayout.module.css?e81b","layouts/StandardAppLayout/StandardAppLayout.tsx","webpack://@qualia/vuln-manager-frontend/./src/layouts/UnauthenticatedLayout/UnauthenticatedLayout.module.css?7770","layouts/UnauthenticatedLayout/UnauthenticatedLayout.tsx","reportWebVitals.ts","../node_modules/semantic-ui-react/dist/es/elements/Button/ButtonContent.js","../node_modules/semantic-ui-react/dist/es/elements/Button/ButtonGroup.js","../node_modules/semantic-ui-react/dist/es/elements/Button/ButtonOr.js","../node_modules/semantic-ui-react/dist/es/elements/Button/Button.js","../node_modules/semantic-ui-react/dist/es/collections/Message/MessageContent.js","../node_modules/semantic-ui-react/dist/es/collections/Message/MessageHeader.js","../node_modules/semantic-ui-react/dist/es/collections/Message/MessageItem.js","../node_modules/semantic-ui-react/dist/es/collections/Message/MessageList.js","../node_modules/semantic-ui-react/dist/es/collections/Message/Message.js","webpack://@qualia/vuln-manager-frontend/./src/routes/Login/Login.module.css?4baa","routes/Login/Login.tsx","../node_modules/lodash-es/set.js","../node_modules/semantic-ui-react/dist/es/modules/Checkbox/Checkbox.js","../node_modules/semantic-ui-react/dist/es/addons/Radio/Radio.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormField.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@tanstack/table-core/src/utils.ts","../node_modules/@tanstack/table-core/src/core/headers.ts","../node_modules/@tanstack/table-core/src/features/ColumnSizing.ts","../node_modules/@tanstack/table-core/src/features/Expanding.ts","../node_modules/@tanstack/table-core/src/filterFns.ts","../node_modules/@tanstack/table-core/src/features/Filters.ts","../node_modules/@tanstack/table-core/src/aggregationFns.ts","../node_modules/@tanstack/table-core/src/features/Ordering.ts","../node_modules/@tanstack/table-core/src/features/Pagination.ts","../node_modules/@tanstack/table-core/src/features/RowSelection.ts","../node_modules/@tanstack/table-core/src/sortingFns.ts","../node_modules/@tanstack/table-core/src/features/Sorting.ts","../node_modules/@tanstack/table-core/src/core/table.ts","../node_modules/@tanstack/table-core/src/features/Visibility.ts","../node_modules/@tanstack/table-core/src/features/Grouping.ts","../node_modules/@tanstack/table-core/src/features/Pinning.ts","../node_modules/@tanstack/table-core/src/core/column.ts","../node_modules/@tanstack/table-core/src/core/row.ts","../node_modules/@tanstack/table-core/src/core/cell.ts","../node_modules/@tanstack/table-core/src/utils/getExpandedRowModel.ts","../node_modules/@tanstack/react-table/src/index.tsx","webpack://@qualia/vuln-manager-frontend/./src/components/GridView/GridViewTable.module.css?4c7a","components/GridView/GridViewTable.tsx","../node_modules/@tanstack/table-core/src/utils/getCoreRowModel.ts","../node_modules/@tanstack/table-core/src/utils/getSortedRowModel.ts","../node_modules/@tanstack/table-core/src/utils/getPaginationRowModel.ts","webpack://@qualia/vuln-manager-frontend/./src/routes/Images/Images.module.css?474c","../node_modules/semantic-ui-react/dist/es/lib/eventStack/index.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/ModalActions.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/ModalContent.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/ModalDescription.js","../node_modules/semantic-ui-react/dist/es/lib/hooks/useIsomorphicLayoutEffect.js","../node_modules/semantic-ui-react/dist/es/lib/hooks/useClassNamesOnNode.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/ModalDimmer.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/ModalHeader.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/Modal.js","../node_modules/semantic-ui-react/dist/es/modules/Modal/utils/index.js","webpack://@qualia/vuln-manager-frontend/./src/routes/Images/components/ImageVersionViewer/ImageVersionViewer.module.css?6988","routes/Images/components/ImageVersionViewer/ImageVersionViewer.tsx","routes/Images/Images.tsx","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@apollo/src/react/hooks/useMutation.ts","../node_modules/semantic-ui-react/dist/es/elements/Input/Input.js","../node_modules/semantic-ui-react/dist/es/addons/Select/Select.js","../node_modules/semantic-ui-react/dist/es/addons/TextArea/TextArea.js","webpack://@qualia/vuln-manager-frontend/./src/routes/Resolutions/components/AddResolution.module.css?14d4","routes/Resolutions/components/AddResolution.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/Resolutions/Resolutions.module.css?399c","webpack://@qualia/vuln-manager-frontend/./src/components/ToastMessage/ToastMessage.module.css?d8d9","components/ToastMessage/ToastMessage.tsx","components/ToastMessage/withToaster.tsx","routes/Resolutions/Resolutions.tsx","../node_modules/semantic-ui-react/dist/es/collections/Form/FormButton.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormCheckbox.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormDropdown.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormGroup.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormInput.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormRadio.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormSelect.js","../node_modules/semantic-ui-react/dist/es/collections/Form/FormTextArea.js","../node_modules/semantic-ui-react/dist/es/collections/Form/Form.js","webpack://@qualia/vuln-manager-frontend/./src/components/ScanImage/ScanImage.module.css?f6cd","components/ScanImage/ScanImage.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/ScanInfo/ScanInfo.module.css?f38f","webpack://@qualia/vuln-manager-frontend/./src/components/ScanViewer/ScanViewer.module.css?e7e2","../node_modules/semantic-ui-react/dist/es/elements/Step/StepDescription.js","../node_modules/semantic-ui-react/dist/es/elements/Step/StepTitle.js","../node_modules/semantic-ui-react/dist/es/elements/Step/StepContent.js","../node_modules/semantic-ui-react/dist/es/elements/Step/StepGroup.js","../node_modules/semantic-ui-react/dist/es/elements/Step/Step.js","components/ScanViewer/components/ScanStatusStepGroup.tsx","components/ScanViewer/ScanViewer.tsx","routes/ScanInfo/ScanInfo.tsx","../node_modules/semantic-ui-react/dist/es/views/Statistic/StatisticGroup.js","../node_modules/semantic-ui-react/dist/es/views/Statistic/StatisticLabel.js","../node_modules/semantic-ui-react/dist/es/views/Statistic/StatisticValue.js","../node_modules/semantic-ui-react/dist/es/views/Statistic/Statistic.js","webpack://@qualia/vuln-manager-frontend/./src/routes/ImageVersion/ImageVersion.module.css?7b7a","routes/ImageVersion/components/VulnDetailModal/VulnDetailModal.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/ImageVersion/components/OSVulnExceptionModal/OSVulnExceptionModal.module.css?ce6d","routes/ImageVersion/components/OSVulnExceptionModal/OSVulnExceptionModal.tsx","../node_modules/semantic-ui-react/dist/es/elements/List/ListDescription.js","../node_modules/semantic-ui-react/dist/es/elements/List/ListHeader.js","../node_modules/semantic-ui-react/dist/es/elements/List/ListContent.js","../node_modules/semantic-ui-react/dist/es/elements/List/ListIcon.js","../node_modules/semantic-ui-react/dist/es/elements/List/ListItem.js","../node_modules/semantic-ui-react/dist/es/elements/List/ListList.js","../node_modules/semantic-ui-react/dist/es/elements/List/List.js","webpack://@qualia/vuln-manager-frontend/./src/routes/ImageVersion/components/LangVulnExceptionModal/LangVulnExceptionModal.module.css?b67e","routes/ImageVersion/components/LangVulnExceptionModal/LangVulnExceptionModal.tsx","routes/ImageVersion/components/ImageVersionVulns.tsx","routes/ImageVersion/components/AddScanModal.tsx","routes/ImageVersion/ImageVersion.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/Projects/Projects.module.css?1250","webpack://@qualia/vuln-manager-frontend/./src/routes/Projects/components/PullRequestViewer.module.css?db6d","routes/Projects/components/PullRequestViewer.tsx","routes/Projects/Projects.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/ProjectScanViewer/ProjectScanViewer.module.css?e422","routes/ProjectScanViewer/components/ProjVulnDetailModal/ProjVulnDetailModal.tsx","webpack://@qualia/vuln-manager-frontend/./src/routes/ProjectScanViewer/components/ProjLangVulnExceptionModal/ProjLangVulnExceptionModal.module.css?b54e","routes/ProjectScanViewer/components/ProjLangVulnExceptionModal/ProjLangVulnExceptionModal.tsx","routes/ProjectScanViewer/components/ProjectScanVulns.tsx","routes/ProjectScanViewer/ProjectScanViewer.tsx","index.tsx"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\n","module.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n","// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n let val = accum\n for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n return val\n}\n","const reduce = require('./reduce')\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n","const reduce = require('./reduce')\n// Array#includes\nmodule.exports = (arr, x) =>\n reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n","// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n","/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n const result = []\n let prop\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop)\n }\n if (!_hasDontEnumBug) return result\n for (let i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i])\n }\n return result\n}\n","module.exports = (min = 1, max = Infinity) => value =>\n typeof value === 'number' &&\n parseInt('' + value, 10) === value &&\n value >= min && value <= max\n","const filter = require('../es-utils/filter')\nconst isArray = require('../es-utils/is-array')\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n","module.exports = value => typeof value === 'string' && !!value.length\n","const filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst isArray = require('./lib/es-utils/is-array')\nconst includes = require('./lib/es-utils/includes')\nconst intRange = require('./lib/validators/int-range')\nconst stringWithLength = require('./lib/validators/string-with-length')\nconst listOfFunctions = require('./lib/validators/list-of-functions')\n\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n apiKey: {\n defaultValue: () => null,\n message: 'is required',\n validate: stringWithLength\n },\n appVersion: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n appType: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n autoDetectErrors: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n enabledErrorTypes: {\n defaultValue: () => defaultErrorTypes(),\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: value => {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false\n const providedKeys = keys(value)\n const defaultKeys = keys(defaultErrorTypes())\n // ensure it only has a subset of the allowed keys\n if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n // ensure all of the values are boolean\n if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n return true\n }\n },\n onError: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onSession: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onBreadcrumb: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n endpoints: {\n defaultValue: () => ({\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n }),\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: val =>\n // first, ensure it's an object\n (val && typeof val === 'object') &&\n (\n // notify and sessions must always be set\n stringWithLength(val.notify) && stringWithLength(val.sessions)\n ) &&\n // ensure no keys other than notify/session are set on endpoints object\n filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n },\n autoTrackSessions: {\n defaultValue: val => true,\n message: 'should be true|false',\n validate: val => val === true || val === false\n },\n enabledReleaseStages: {\n defaultValue: () => null,\n message: 'should be an array of strings',\n validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n },\n releaseStage: {\n defaultValue: () => 'production',\n message: 'should be a string',\n validate: value => typeof value === 'string' && value.length\n },\n maxBreadcrumbs: {\n defaultValue: () => 25,\n message: 'should be a number ≤100',\n validate: value => intRange(0, 100)(value)\n },\n enabledBreadcrumbTypes: {\n defaultValue: () => BREADCRUMB_TYPES,\n message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n if (accum === false) return accum\n return includes(BREADCRUMB_TYPES, maybeType)\n }, true))\n },\n context: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || typeof value === 'string'\n },\n user: {\n defaultValue: () => ({}),\n message: 'should be an object with { id, email, name } properties',\n validate: value =>\n (value === null) ||\n (value && reduce(\n keys(value),\n (accum, key) => accum && includes(['id', 'email', 'name'], key),\n true\n ))\n },\n metadata: {\n defaultValue: () => ({}),\n message: 'should be an object',\n validate: (value) => typeof value === 'object' && value !== null\n },\n logger: {\n defaultValue: () => undefined,\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: value =>\n (!value) ||\n (value && reduce(\n ['debug', 'info', 'warn', 'error'],\n (accum, method) => accum && typeof value[method] === 'function',\n true\n ))\n },\n redactedKeys: {\n defaultValue: () => ['password'],\n message: 'should be an array of strings|regexes',\n validate: value =>\n isArray(value) && value.length === filter(value, s =>\n (typeof s === 'string' || (s && typeof s.test === 'function'))\n ).length\n },\n plugins: {\n defaultValue: () => ([]),\n message: 'should be an array of plugin objects',\n validate: value =>\n isArray(value) && value.length === filter(value, p =>\n (p && typeof p === 'object' && typeof p.load === 'function')\n ).length\n },\n featureFlags: {\n defaultValue: () => [],\n message: 'should be an array of objects that have a \"name\" property',\n validate: value =>\n isArray(value) && value.length === filter(value, feature =>\n feature && typeof feature === 'object' && typeof feature.name === 'string'\n ).length\n }\n}\n","// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = 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","const reduce = require('./reduce')\n\n// Array#map\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n","const { schema } = require('@bugsnag/core/config')\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\nmodule.exports = {\n releaseStage: assign({}, schema.releaseStage, {\n defaultValue: () => {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development'\n return 'production'\n }\n }),\n appType: {\n ...schema.appType,\n defaultValue: () => 'browser'\n },\n logger: assign({}, schema.logger, {\n defaultValue: () =>\n // set logger based on browser capability\n (typeof console !== 'undefined' && typeof console.debug === 'function')\n ? getPrefixedConsole()\n : undefined\n })\n}\n\nconst getPrefixedConsole = () => {\n const logger = {}\n const consoleLog = console.log\n map(['debug', 'info', 'warn', 'error'], (method) => {\n const consoleMethod = console[method]\n logger[method] = typeof consoleMethod === 'function'\n ? consoleMethod.bind(console, '[bugsnag]')\n : consoleLog.bind(console, '[bugsnag]')\n })\n return logger\n}\n","class Breadcrumb {\n constructor (message, metadata, type, timestamp = new Date()) {\n this.type = type\n this.message = message\n this.metadata = metadata\n this.timestamp = timestamp\n }\n\n toJSON () {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n }\n }\n}\n\nmodule.exports = Breadcrumb\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","module.exports = require('error-stack-parser')\n","module.exports = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []\n return JSON.stringify(\n prepareObjForSerialization(data, redactedKeys, redactedPaths),\n replacer,\n space\n )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n return o instanceof Error ||\n /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n return '[Throws: ' + (err ? err.message : '?') + ']'\n}\n\nfunction find (haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true\n }\n return false\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent (paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true\n }\n return false\n}\n\nfunction shouldRedact (patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true\n }\n return false\n}\n\nfunction isArray (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n try {\n return obj[prop]\n } catch (err) {\n return throwsMessage(err)\n }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n var seen = [] // store references to objects we have seen before\n var edges = 0\n\n function visit (obj, path) {\n function edgesExceeded () {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n }\n\n edges++\n\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE\n if (edgesExceeded()) return REPLACEMENT_NODE\n if (obj === null || typeof obj !== 'object') return obj\n if (find(seen, obj)) return '[Circular]'\n\n seen.push(obj)\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--\n var fResult = visit(obj.toJSON(), path)\n seen.pop()\n return fResult\n } catch (err) {\n return throwsMessage(err)\n }\n }\n\n var er = isError(obj)\n if (er) {\n edges--\n var eResult = visit({ name: obj.name, message: obj.message }, path)\n seen.pop()\n return eResult\n }\n\n if (isArray(obj)) {\n var aResult = []\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE)\n break\n }\n aResult.push(visit(obj[i], path.concat('[]')))\n }\n seen.pop()\n return aResult\n }\n\n var result = {}\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]'\n continue\n }\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE\n break\n }\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop))\n }\n } catch (e) {}\n seen.pop()\n return result\n }\n\n return visit(obj, [])\n}\n","const map = require('./es-utils/map')\nconst filter = require('./es-utils/filter')\nconst isArray = require('./es-utils/is-array')\nconst jsonStringify = require('@bugsnag/safe-json-stringify')\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return\n }\n\n if (variant === undefined) {\n variant = null\n } else if (variant !== null && typeof variant !== 'string') {\n variant = jsonStringify(variant)\n }\n\n const existingIndex = existingFeatureKeys[name]\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = { name, variant }\n return\n }\n\n existingFeatures.push({ name, variant })\n existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n if (!isArray(newFeatures)) {\n return\n }\n\n for (let i = 0; i < newFeatures.length; ++i) {\n const feature = newFeatures[i]\n\n if (feature === null || typeof feature !== 'object') {\n continue\n }\n\n // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n add(existingFeatures, existingFeatureKeys, feature.name, feature.variant)\n }\n\n return existingFeatures\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi (featureFlags) {\n return map(\n filter(featureFlags, Boolean),\n ({ name, variant }) => {\n const flag = { featureFlag: name }\n\n // don't add a 'variant' property unless there's actually a value\n if (typeof variant === 'string') {\n flag.variant = variant\n }\n\n return flag\n }\n )\n}\n\nfunction clear (features, featuresIndex, name) {\n const existingIndex = featuresIndex[name]\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null\n delete featuresIndex[name]\n }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n","// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n !!err &&\n (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n err.stack !== `${err.name}: ${err.message}`\n","\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]': return true;\n case '[object Exception]': return true;\n case '[object DOMException]': return true;\n default: return value instanceof Error;\n }\n}\n","module.exports = require('iserror')\n","const assign = require('./es-utils/assign')\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n if (!section) return\n let updates\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return clear(state, section)\n\n // normalise the two supported input types into object form\n if (typeof keyOrObj === 'object') updates = keyOrObj\n if (typeof keyOrObj === 'string') updates = { [keyOrObj]: maybeVal }\n\n // exit if we don't have an updates object at this point\n if (!updates) return\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {}\n\n // merge the updates with the existing section\n state[section] = assign({}, state[section], updates)\n}\n\nconst get = (state, section, key) => {\n if (typeof section !== 'string') return undefined\n if (!key) {\n return state[section]\n }\n if (state[section]) {\n return state[section][key]\n }\n return undefined\n}\n\nconst clear = (state, section, key) => {\n if (typeof section !== 'string') return\n\n // clear an entire section\n if (!key) {\n delete state[section]\n return\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key]\n }\n}\n\nmodule.exports = { add, get, clear }\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n}(this, function(StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n","const ErrorStackParser = require('./lib/error-stack-parser')\nconst StackGenerator = require('stack-generator')\nconst hasStack = require('./lib/has-stack')\nconst map = require('./lib/es-utils/map')\nconst reduce = require('./lib/es-utils/reduce')\nconst filter = require('./lib/es-utils/filter')\nconst assign = require('./lib/es-utils/assign')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst featureFlagDelegate = require('./lib/feature-flag-delegate')\nconst isError = require('./lib/iserror')\n\nclass Event {\n constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n this.apiKey = undefined\n this.context = undefined\n this.groupingHash = undefined\n this.originalError = originalError\n\n this._handledState = handledState\n this.severity = this._handledState.severity\n this.unhandled = this._handledState.unhandled\n\n this.app = {}\n this.device = {}\n this.request = {}\n\n this.breadcrumbs = []\n this.threads = []\n\n this._metadata = {}\n this._features = []\n this._featuresIndex = {}\n this._user = {}\n this._session = undefined\n\n this.errors = [\n createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n ]\n\n // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n }\n\n getFeatureFlags () {\n return featureFlagDelegate.toEventApi(this._features)\n }\n\n clearFeatureFlag (name) {\n featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n payloadVersion: '4',\n exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: this.getFeatureFlags()\n }\n }\n}\n\n// takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nconst formatStackframe = frame => {\n const f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }\n // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code'\n }\n return f\n}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n unhandled: false,\n severity: 'warning',\n severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type,\n stacktrace: reduce(stacktrace, (accum, frame) => {\n const f = formatStackframe(frame)\n // don't include a stackframe if none of its properties are defined\n try {\n if (JSON.stringify(f) === '{}') return accum\n return accum.concat(f)\n } catch (e) {\n return accum\n }\n }, [])\n }\n}\n\nfunction getCauseStack (error) {\n if (error.cause) {\n return [error, ...getCauseStack(error.cause)]\n } else {\n return [error]\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (hasStack(error)) return ErrorStackParser.parse(error).slice(errorFramesToSkip)\n // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n try {\n return filter(StackGenerator.backtrace(), frame =>\n (frame.functionName || '').indexOf('StackGenerator$$') === -1\n ).slice(1 + backtraceFramesToSkip)\n } catch (e) {\n return []\n }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n let event\n try {\n const stacktrace = Event.getStacktrace(\n error,\n // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip\n )\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError)\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError)\n }\n if (error.name === 'InvalidError') {\n event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError))\n }\n if (error.cause) {\n const causes = getCauseStack(error).slice(1)\n const normalisedCauses = map(causes, (cause) => {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n const [error] = normaliseError(cause, true, 'error cause')\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n })\n\n event.errors.push(...normalisedCauses)\n }\n\n return event\n}\n\nconst makeSerialisable = (err) => {\n if (err === null) return 'null'\n if (err === undefined) return 'undefined'\n return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n let error\n let internalFrames = 0\n\n const createAndLogInputError = (reason) => {\n const verb = (component === 'error cause' ? 'was' : 'received')\n if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n const err = new Error(`${component} ${verb} a non-error. See \"${component}\" tab for more detail.`)\n err.name = 'InvalidError'\n return err\n }\n\n // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n if (!tolerateNonErrors) {\n if (isError(maybeError)) {\n error = maybeError\n } else {\n error = createAndLogInputError(typeof maybeError)\n internalFrames += 2\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError))\n internalFrames += 1\n break\n case 'function':\n error = createAndLogInputError('function')\n internalFrames += 2\n break\n case 'object':\n if (maybeError !== null && isError(maybeError)) {\n error = maybeError\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage)\n error.name = maybeError.name || maybeError.errorClass\n internalFrames += 1\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object')\n internalFrames += 2\n }\n break\n default:\n error = createAndLogInputError('nothing')\n internalFrames += 2\n }\n }\n\n if (!hasStack(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error\n } catch (e) {\n if (hasStack(e)) {\n error = e\n // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n internalFrames = 1\n }\n }\n }\n\n return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\n","// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nmodule.exports = (arr, fn, cb) => {\n let index = 0\n\n const next = () => {\n if (index >= arr.length) return cb(null, true)\n fn(arr[index], (err, result) => {\n if (err) return cb(err)\n if (result === false) return cb(null, false)\n index++\n next()\n })\n }\n\n next()\n}\n","const some = require('./async-every')\n\nmodule.exports = (callbacks, event, onCallbackError, cb) => {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n const runMaybeAsyncCallback = (fn, cb) => {\n if (typeof fn !== 'function') return cb(null)\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n const ret = fn(event)\n // check if it returned a \"thenable\" (promise)\n if (ret && typeof ret.then === 'function') {\n return ret.then(\n // resolve\n val => setTimeout(() => cb(null, val)),\n // reject\n err => {\n setTimeout(() => {\n onCallbackError(err)\n return cb(null, true)\n })\n }\n )\n }\n return cb(null, ret)\n }\n // if function is async…\n fn(event, (err, result) => {\n if (err) {\n onCallbackError(err)\n return cb(null)\n }\n cb(null, result)\n })\n } catch (e) {\n onCallbackError(e)\n cb(null)\n }\n }\n\n some(callbacks, runMaybeAsyncCallback, cb)\n}\n","module.exports = (callbacks, callbackArg, callbackType, logger) => {\n let ignore = false\n const cbs = callbacks.slice()\n while (!ignore) {\n if (!cbs.length) break\n try {\n ignore = cbs.pop()(callbackArg) === false\n } catch (e) {\n logger.error(`Error occurred in ${callbackType} callback, continuing anyway…`)\n logger.error(e)\n }\n }\n return ignore\n}\n","module.exports = function pad (num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n","var pad = require('./pad.js');\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n navigator.userAgent.length).toString(36) +\n globalCount.toString(36), 4);\n\nmodule.exports = function fingerprint () {\n return clientId;\n};\n","/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nvar fingerprint = require('./lib/fingerprint.js');\nvar pad = require('./lib/pad.js');\n\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock () {\n return pad((Math.random() *\n discreteValues << 0)\n .toString(base), blockSize);\n}\n\nfunction safeCounter () {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n}\n\nfunction cuid () {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c', // hard-coded allows for sequential access\n\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = (new Date().getTime()).toString(base),\n\n // Prevent same-machine collisions.\n counter = pad(safeCounter().toString(base), blockSize),\n\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = fingerprint(),\n\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n\n return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = fingerprint;\n\nmodule.exports = cuid;\n","const cuid = require('@bugsnag/cuid')\n\nclass Session {\n constructor () {\n this.id = cuid()\n this.startedAt = new Date()\n this._handled = 0\n this._unhandled = 0\n this._user = {}\n this.app = {}\n this.device = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: { handled: this._handled, unhandled: this._unhandled }\n }\n }\n\n _track (event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n }\n}\n\nmodule.exports = Session\n","const config = require('./config')\nconst Event = require('./event')\nconst Breadcrumb = require('./breadcrumb')\nconst Session = require('./session')\nconst map = require('./lib/es-utils/map')\nconst includes = require('./lib/es-utils/includes')\nconst filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst assign = require('./lib/es-utils/assign')\nconst runCallbacks = require('./lib/callback-runner')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst runSyncCallbacks = require('./lib/sync-callback-runner')\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst { add, clear, merge } = require('./lib/feature-flag-delegate')\n\nconst noop = () => {}\n\nclass Client {\n constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\n // notifier id\n this._notifier = notifier\n\n // intialise opts and config\n this._config = {}\n this._schema = schema\n\n // i/o\n this._delivery = { sendSession: noop, sendEvent: noop }\n this._logger = { debug: noop, info: noop, warn: noop, error: noop }\n\n // plugins\n this._plugins = {}\n\n // state\n this._breadcrumbs = []\n this._session = null\n this._metadata = {}\n this._featuresIndex = {}\n this._features = []\n this._context = undefined\n this._user = {}\n\n // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }\n\n // expose internal constructors\n this.Client = Client\n this.Event = Event\n this.Breadcrumb = Breadcrumb\n this.Session = Session\n\n this._config = this._configure(configuration, internalPlugins)\n map(internalPlugins.concat(this._config.plugins), pl => {\n if (pl) this._loadPlugin(pl)\n })\n\n // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n this._depth = 1\n\n const self = this\n const notify = this.notify\n this.notify = function () {\n return notify.apply(self, arguments)\n }\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n merge(this._features, featureFlags, this._featuresIndex)\n }\n\n clearFeatureFlag (name) {\n clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getContext () {\n return this._context\n }\n\n setContext (c) {\n this._context = c\n }\n\n _configure (opts, internalPlugins) {\n const schema = reduce(internalPlugins, (schema, plugin) => {\n if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n return schema\n }, this._schema)\n\n // accumulate configuration and error messages\n const { errors, config } = reduce(keys(schema), (accum, key) => {\n const defaultValue = schema[key].defaultValue(opts[key])\n\n if (opts[key] !== undefined) {\n const valid = schema[key].validate(opts[key])\n if (!valid) {\n accum.errors[key] = schema[key].message\n accum.config[key] = defaultValue\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = assign(defaultValue, opts[key])\n } else {\n accum.config[key] = opts[key]\n }\n }\n } else {\n accum.config[key] = defaultValue\n }\n\n return accum\n }, { errors: {}, config: {} })\n\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set')\n // warn about an apikey that is not of the expected format\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters'\n }\n\n // update and elevate some options\n this._metadata = assign({}, config.metadata)\n merge(this._features, config.featureFlags, this._featuresIndex)\n this._user = assign({}, config.user)\n this._context = config.context\n if (config.logger) this._logger = config.logger\n\n // add callbacks\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError)\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb)\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession)\n\n // finally warn about any invalid config where we fell back to the default\n if (keys(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts))\n }\n\n return config\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n _loadPlugin (plugin) {\n const result = plugin.load(this)\n // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n if (plugin.name) this._plugins[`~${plugin.name}~`] = result\n return this\n }\n\n getPlugin (name) {\n return this._plugins[`~${name}~`]\n }\n\n _setDelivery (d) {\n this._delivery = d(this)\n }\n\n startSession () {\n const session = new Session()\n\n session.app.releaseStage = this._config.releaseStage\n session.app.version = this._config.appVersion\n session.app.type = this._config.appType\n\n session._user = assign({}, this._user)\n\n // run onSession callbacks\n const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback')\n return this\n }\n return this._sessionDelegate.startSession(this, session)\n }\n\n addOnError (fn, front = false) {\n this._cbs.e[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnError (fn) {\n this._cbs.e = filter(this._cbs.e, f => f !== fn)\n }\n\n _addOnSessionPayload (fn) {\n this._cbs.sp.push(fn)\n }\n\n addOnSession (fn) {\n this._cbs.s.push(fn)\n }\n\n removeOnSession (fn) {\n this._cbs.s = filter(this._cbs.s, f => f !== fn)\n }\n\n addOnBreadcrumb (fn, front = false) {\n this._cbs.b[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnBreadcrumb (fn) {\n this._cbs.b = filter(this._cbs.b, f => f !== fn)\n }\n\n pauseSession () {\n return this._sessionDelegate.pauseSession(this)\n }\n\n resumeSession () {\n return this._sessionDelegate.resumeSession(this)\n }\n\n leaveBreadcrumb (message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : ''\n type = (typeof type === 'string' && includes(BREADCRUMB_TYPES, type)) ? type : 'manual'\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n // if no message, discard\n if (!message) return\n\n const crumb = new Breadcrumb(message, metadata, type)\n\n // run onBreadcrumb callbacks\n const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback')\n return\n }\n\n // push the valid crumb onto the queue and maintain the length\n this._breadcrumbs.push(crumb)\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs)\n }\n }\n\n _isBreadcrumbTypeEnabled (type) {\n const types = this._config.enabledBreadcrumbTypes\n\n return types === null || includes(types, type)\n }\n\n notify (maybeError, onError, postReportCallback = noop) {\n const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n this._notify(event, onError, postReportCallback)\n }\n\n _notify (event, onError, postReportCallback = noop) {\n event.app = assign({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n })\n event.context = event.context || this._context\n event._metadata = assign({}, event._metadata, this._metadata)\n event._user = assign({}, event._user, this._user)\n event.breadcrumbs = this._breadcrumbs.slice()\n merge(event._features, this._features, event._featuresIndex)\n\n // exit early if events should not be sent on the current releaseStage\n if (this._config.enabledReleaseStages !== null && !includes(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration')\n return postReportCallback(null, event)\n }\n\n const originalSeverity = event.severity\n\n const onCallbackError = err => {\n // errors in callbacks are tolerated but we want to log them out\n this._logger.error('Error occurred in onError callback, continuing anyway…')\n this._logger.error(err)\n }\n\n const callbacks = [].concat(this._cbs.e).concat(onError)\n runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n if (err) onCallbackError(err)\n\n if (!shouldSend) {\n this._logger.debug('Event not sent due to onError callback')\n return postReportCallback(null, event)\n }\n\n if (this._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error')\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = { type: 'userCallbackSetSeverity' }\n }\n\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true\n event._handledState.unhandled = event.unhandled\n }\n\n if (this._session) {\n this._session._track(event)\n event._session = this._session\n }\n\n this._delivery.sendEvent({\n apiKey: event.apiKey || this._config.apiKey,\n notifier: this._notifier,\n events: [event]\n }, (err) => postReportCallback(err, event))\n })\n }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n const er = new Error(\n `Invalid configuration\\n${map(keys(errors), key => ` - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n return er\n}\n\nconst stringify = val => {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val)\n default: return String(val)\n }\n}\n\nmodule.exports = Client\n","const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n 'events.[].metaData',\n 'events.[].breadcrumbs.[].metaData',\n 'events.[].request'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n }\n payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit')\n }\n return payload\n}\n\nmodule.exports.session = (event, redactedKeys) => {\n const payload = jsonStringify(event, null, null)\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit')\n return payload\n}\n","const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n const url = getApiUrl(client._config, 'notify', '4', win)\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(payload.event(event, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n },\n sendSession: (session, cb = () => {}) => {\n const url = getApiUrl(client._config, 'sessions', '1', win)\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n }\n})\n\nconst getApiUrl = (config, endpoint, version, win) => {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n const isoDate = JSON.parse(JSON.stringify(new Date()))\n const url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol)\n return `${url}?apiKey=${encodeURIComponent(config.apiKey)}&payloadVersion=${version}&sentAt=${encodeURIComponent(isoDate)}`\n}\n\nconst matchPageProtocol = module.exports._matchPageProtocol = (endpoint, pageProtocol) =>\n pageProtocol === 'http:'\n ? endpoint.replace(/^https:/, 'http:')\n : endpoint\n","const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n try {\n const url = client._config.endpoints.notify\n const req = new win.XMLHttpRequest()\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null)\n }\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '4')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n req.send(payload.event(event, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n }\n },\n sendSession: (session, cb = () => {}) => {\n try {\n const url = client._config.endpoints.sessions\n const req = new win.XMLHttpRequest()\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null)\n }\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '1')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n }\n }\n})\n","let appStart = new Date()\nconst reset = () => { appStart = new Date() }\n\nmodule.exports = {\n name: 'appDuration',\n load: client => {\n client.addOnError(event => {\n const now = new Date()\n\n event.app.duration = now - appStart\n }, true)\n\n return { reset }\n }\n}\n","/*\n * Sets the default context to be the current URL\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.context !== undefined) return\n event.context = win.location.pathname\n }, true)\n }\n})\n","const cuid = require('@bugsnag/cuid')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\n\nconst getDeviceId = () => {\n try {\n const storage = window.localStorage\n\n let id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY)\n\n // If we get an ID, make sure it looks like a valid cuid. The length can\n // fluctuate slightly, so some leeway is built in\n if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n return id\n }\n\n id = cuid()\n\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\n return id\n } catch (err) {\n // If localStorage is not available (e.g. because it's disabled) then give up\n }\n}\n\n/*\n * Automatically detects browser device details\n */\nmodule.exports = (nav = navigator, screen = window.screen) => ({\n load: (client) => {\n const device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n }\n\n if (screen && screen.orientation && screen.orientation.type) {\n device.orientation = screen.orientation.type\n } else {\n device.orientation =\n document.documentElement.clientWidth > document.documentElement.clientHeight\n ? 'landscape'\n : 'portrait'\n }\n\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId()\n }\n\n client.addOnSession(session => {\n session.device = assign({}, session.device, device)\n // only set device id if collectUserIp is false\n if (!client._config.collectUserIp) setDefaultUserId(session)\n })\n\n // add time just as the event is sent\n client.addOnError((event) => {\n event.device = assign({},\n event.device,\n device,\n { time: new Date() }\n )\n if (!client._config.collectUserIp) setDefaultUserId(event)\n }, true)\n },\n configSchema: {\n generateAnonymousId: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n // device id is also used to populate the user id field, if it's not already set\n const user = eventOrSession.getUser()\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id)\n }\n}\n","const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Sets the event request: { url } to be the current href\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.request && event.request.url) return\n event.request = assign({}, event.request, { url: win.location.href })\n }, true)\n }\n})\n","const includes = require('@bugsnag/core/lib/es-utils/includes')\n\nmodule.exports = {\n load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n startSession: (client, session) => {\n const sessionClient = client\n sessionClient._session = session\n sessionClient._pausedSession = null\n\n // exit early if the current releaseStage is not enabled\n if (sessionClient._config.enabledReleaseStages !== null && !includes(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n return sessionClient\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [\n {\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }\n ]\n })\n return sessionClient\n },\n resumeSession: (client) => {\n // Do nothing if there's already an active session\n if (client._session) {\n return client\n }\n\n // If we have a paused session then make it the active session\n if (client._pausedSession) {\n client._session = client._pausedSession\n client._pausedSession = null\n\n return client\n }\n\n // Otherwise start a new session\n return client.startSession()\n },\n pauseSession: (client) => {\n client._pausedSession = client._session\n client._session = null\n }\n}\n","const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n load: (client) => {\n if (client._config.collectUserIp) return\n\n client.addOnError(event => {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id\n event._user = assign({ id: '[REDACTED]' }, event._user)\n event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n })\n },\n configSchema: {\n collectUserIp: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n }\n }\n}\n","const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\nexports.load = (client) => {\n const isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage)\n\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return\n\n map(CONSOLE_LOG_METHODS, method => {\n const original = console[method]\n console[method] = (...args) => {\n client.leaveBreadcrumb('Console output', reduce(args, (accum, arg, i) => {\n // do the best/simplest stringification of each argument\n let stringified = '[Unknown value]'\n // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n try { stringified = String(arg) } catch (e) {}\n // if it stringifies to [object Object] attempt to JSON stringify\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try { stringified = JSON.stringify(arg) } catch (e) {}\n }\n accum[`[${i}]`] = stringified\n return accum\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log')\n original.apply(console, args)\n }\n console[method]._restore = () => { console[method] = original }\n })\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = () => CONSOLE_LOG_METHODS.forEach(method => {\n if (typeof console[method]._restore === 'function') console[method]._restore()\n })\n}\n\nconst CONSOLE_LOG_METHODS = filter(['log', 'debug', 'info', 'warn', 'error'], method =>\n typeof console !== 'undefined' && typeof console[method] === 'function'\n)\n","const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\nconst MAX_LINE_LENGTH = 200\nconst MAX_SCRIPT_LENGTH = 500000\n\nmodule.exports = (doc = document, win = window) => ({\n load: (client) => {\n if (!client._config.trackInlineScripts) return\n\n const originalLocation = win.location.href\n let html = ''\n\n // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n const isOldIe = !!doc.attachEvent\n let DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading'\n const getHtml = () => doc.documentElement.outerHTML\n\n // get whatever HTML exists at this point in time\n html = getHtml()\n const prev = doc.onreadystatechange\n // then update it when the DOM content has loaded\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml()\n DOMContentLoaded = true\n }\n try { prev.apply(this, arguments) } catch (e) {}\n }\n\n let _lastScript = null\n const updateLastScript = script => {\n _lastScript = script\n }\n\n const getCurrentScript = () => {\n let script = doc.currentScript || _lastScript\n if (!script && !DOMContentLoaded) {\n const scripts = doc.scripts || doc.getElementsByTagName('script')\n script = scripts[scripts.length - 1]\n }\n return script\n }\n\n const addSurroundingCode = lineNumber => {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml()\n // simulate the raw html\n const htmlLines = [''].concat(html.split('\\n'))\n const zeroBasedLine = lineNumber - 1\n const start = Math.max(zeroBasedLine - 3, 0)\n const end = Math.min(zeroBasedLine + 3, htmlLines.length)\n return reduce(htmlLines.slice(start, end), (accum, line, i) => {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH)\n return accum\n }, {})\n }\n\n client.addOnError(event => {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = filter(event.errors[0].stacktrace, f => !(/__trace__$/.test(f.method)))\n\n const frame = event.errors[0].stacktrace[0]\n\n // if frame.file exists and is not the original location of the page, this can't be an inline script\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return\n\n // grab the last script known to have run\n const currentScript = getCurrentScript()\n if (currentScript) {\n const content = currentScript.innerHTML\n event.addMetadata(\n 'script',\n 'content',\n content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)\n )\n\n // only attempt to grab some surrounding code if we have a line number\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber)\n }\n }\n }, true)\n\n // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n const [_setTimeout] = map([\n 'setTimeout',\n 'setInterval',\n 'setImmediate',\n 'requestAnimationFrame'\n ], fn =>\n __proxy(win, fn, original =>\n __traceOriginalScript(original, args => ({\n get: () => args[0],\n replace: fn => { args[0] = fn }\n }))\n )\n )\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n map([\n 'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode',\n 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase',\n 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow',\n 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList',\n 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'\n ], o => {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return\n __proxy(win[o].prototype, 'addEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor)\n )\n __proxy(win[o].prototype, 'removeEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor, true)\n )\n })\n\n function __traceOriginalScript (fn, callbackAccessor, alsoCallOriginal = false) {\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n const args = [].slice.call(arguments)\n try {\n const cba = callbackAccessor(args)\n const cb = cba.get()\n if (alsoCallOriginal) fn.apply(this, args)\n if (typeof cb !== 'function') return fn.apply(this, args)\n if (cb.__trace__) {\n cba.replace(cb.__trace__)\n } else {\n const script = getCurrentScript()\n // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n cb.__trace__ = function __trace__ () {\n // set the script that called this function\n updateLastScript(script)\n // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n _setTimeout(function () { updateLastScript(null) }, 0)\n const ret = cb.apply(this, arguments)\n updateLastScript(null)\n return ret\n }\n cb.__trace__.__trace__ = cb.__trace__\n cba.replace(cb.__trace__)\n }\n } catch (e) {\n // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n }\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n if (fn.apply) return fn.apply(this, args)\n switch (args.length) {\n case 1: return fn(args[0])\n case 2: return fn(args[0], args[1])\n default: return fn()\n }\n }\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nfunction __proxy (host, name, replacer) {\n const original = host[name]\n if (!original) return original\n const replacement = replacer(original)\n host[name] = replacement\n return original\n}\n\nfunction eventTargetCallbackAccessor (args) {\n const isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function'\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1]\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn\n } else {\n args[1] = fn\n }\n }\n }\n}\n","/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('user')) return\n\n win.addEventListener('click', (event) => {\n let targetText, targetSelector\n try {\n targetText = getNodeText(event.target)\n targetSelector = getNodeSelector(event.target, win)\n } catch (e) {\n targetText = '[hidden]'\n targetSelector = '[hidden]'\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z')\n }\n client.leaveBreadcrumb('UI click', { targetText, targetSelector }, 'user')\n }, true)\n }\n})\n\n// extract text content from a element\nconst getNodeText = el => {\n let text = el.textContent || el.innerText || ''\n if (!text && (el.type === 'submit' || el.type === 'button')) text = el.value\n text = text.replace(/^\\s+|\\s+$/g, '') // trim whitespace\n return truncate(text, 140)\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector (el, win) {\n const parts = [el.tagName]\n if (el.id) parts.push('#' + el.id)\n if (el.className && el.className.length) parts.push(`.${el.className.split(' ').join('.')}`)\n // Can't get much more advanced with the current browser\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('')\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('')\n }\n // try to get a more specific selector if this one matches more than one element\n if (el.parentNode.childNodes.length > 1) {\n const index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1\n parts.push(`:nth-child(${index})`)\n }\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n // try prepending the parent node selector\n if (el.parentNode) return `${getNodeSelector(el.parentNode, win)} > ${parts.join('')}`\n return parts.join('')\n}\n\nfunction truncate (value, length) {\n const ommision = '(...)'\n if (value && value.length <= length) return value\n return value.slice(0, length - ommision.length) + ommision\n}\n","/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('navigation')) return\n\n // returns a function that will drop a breadcrumb with a given name\n const drop = name => () => client.leaveBreadcrumb(name, {}, 'navigation')\n\n // simple drops – just names, no meta\n win.addEventListener('pagehide', drop('Page hidden'), true)\n win.addEventListener('pageshow', drop('Page shown'), true)\n win.addEventListener('load', drop('Page loaded'), true)\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true)\n // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n win.addEventListener('load', () => win.addEventListener('popstate', drop('Navigated back'), true))\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', event => {\n const metadata = event.oldURL\n ? { from: relativeLocation(event.oldURL, win), to: relativeLocation(event.newURL, win), state: getCurrentState(win) }\n : { to: relativeLocation(win.location.href, win) }\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation')\n }, true)\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n }\n\n return plugin\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nconst relativeLocation = (url, win) => {\n const a = win.document.createElement('A')\n a.href = url\n return `${a.pathname}${a.search}${a.hash}`\n}\n\nconst stateChangeToMetadata = (win, state, title, url) => {\n const currentPath = relativeLocation(win.location.href, win)\n return { title, state, prevState: getCurrentState(win), to: url || currentPath, from: currentPath }\n}\n\nconst wrapHistoryFn = (client, target, fn, win) => {\n const orig = target[fn]\n target[fn] = (state, title, url) => {\n client.leaveBreadcrumb(`History ${fn}`, stateChangeToMetadata(win, state, title, url), 'navigation')\n // if throttle plugin is in use, reset the event sent count\n if (typeof client.resetEventCount === 'function') client.resetEventCount()\n // if the client is operating in auto session-mode, a new route should trigger a new session\n if (client._config.autoTrackSessions) client.startSession()\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []))\n }\n if (process.env.NODE_ENV !== 'production') {\n target[fn]._restore = () => { target[fn] = orig }\n }\n}\n\nconst getCurrentState = (win) => {\n try {\n return win.history.state\n } catch (e) {}\n}\n","const BREADCRUMB_TYPE = 'request'\n\nconst includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nmodule.exports = (_ignoredUrls = [], win = window) => {\n let restoreFunctions = []\n const plugin = {\n load: client => {\n if (!client._isBreadcrumbTypeEnabled('request')) return\n\n const ignoredUrls = [\n client._config.endpoints.notify,\n client._config.endpoints.sessions\n ].concat(_ignoredUrls)\n\n monkeyPatchXMLHttpRequest()\n monkeyPatchFetch()\n\n // XMLHttpRequest monkey patch\n function monkeyPatchXMLHttpRequest () {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return\n const nativeOpen = win.XMLHttpRequest.prototype.open\n\n // override native open()\n win.XMLHttpRequest.prototype.open = function open (method, url) {\n let requestSetupKey = false\n\n const error = () => handleXHRError(method, url)\n const load = () => handleXHRLoad(method, url, this.status)\n\n // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n if (requestSetupKey) {\n this.removeEventListener('load', load)\n this.removeEventListener('error', error)\n }\n\n // attach load event listener\n this.addEventListener('load', load)\n // attach error event listener\n this.addEventListener('error', error)\n\n requestSetupKey = true\n\n nativeOpen.apply(this, arguments)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.XMLHttpRequest.prototype.open = nativeOpen\n })\n }\n }\n\n function handleXHRLoad (method, url, status) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\n // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n const metadata = {\n status: status,\n request: `${method} ${url}`\n }\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n function handleXHRError (method, url) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\n if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n\n // failed to contact server\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: `${method} ${url}`\n }, BREADCRUMB_TYPE)\n }\n\n // window.fetch monkey patch\n function monkeyPatchFetch () {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return\n\n const oldFetch = win.fetch\n win.fetch = function fetch () {\n const urlOrRequest = arguments[0]\n const options = arguments[1]\n\n let method\n let url = null\n\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url\n if (options && 'method' in options) {\n method = options.method\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method\n }\n } else {\n url = urlOrRequest\n if (options && 'method' in options) {\n method = options.method\n }\n }\n\n if (method === undefined) {\n method = 'GET'\n }\n\n return new Promise((resolve, reject) => {\n // pass through to native fetch\n oldFetch(...arguments)\n .then(response => {\n handleFetchSuccess(response, method, url)\n resolve(response)\n })\n .catch(error => {\n handleFetchError(method, url)\n reject(error)\n })\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.fetch = oldFetch\n })\n }\n }\n\n const handleFetchSuccess = (response, method, url) => {\n const metadata = {\n status: response.status,\n request: `${method} ${url}`\n }\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n const handleFetchError = (method, url) => {\n client.leaveBreadcrumb('fetch() error', { request: `${method} ${url}` }, BREADCRUMB_TYPE)\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = () => {\n restoreFunctions.forEach(fn => fn())\n restoreFunctions = []\n }\n }\n\n return plugin\n}\n","const intRange = require('@bugsnag/core/lib/validators/int-range')\n\n/*\n * Throttles and dedupes events\n */\n\nmodule.exports = {\n load: (client) => {\n // track sent events for each init of the plugin\n let n = 0\n\n // add onError hook\n client.addOnError((event) => {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(`Cancelling event send due to maxEvents per session limit of ${client._config.maxEvents} being reached`)\n return false\n }\n n++\n })\n\n client.resetEventCount = () => { n = 0 }\n },\n configSchema: {\n maxEvents: {\n defaultValue: () => 10,\n message: 'should be a positive integer ≤100',\n validate: val => intRange(1, 100)(val)\n }\n }\n}\n","/*\n * Remove query strings (and fragments) from stacktraces\n */\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\n\nmodule.exports = {\n load: (client) => {\n client.addOnError(event => {\n const allFrames = reduce(event.errors, (accum, er) => accum.concat(er.stacktrace), [])\n map(allFrames, frame => {\n frame.file = strip(frame.file)\n })\n })\n }\n}\n\nconst strip = module.exports._strip = str =>\n typeof str === 'string'\n ? str.replace(/\\?.*$/, '').replace(/#.*$/, '')\n : str\n","/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window) => ({\n load: (client) => {\n if (!client._config.autoDetectErrors) return\n if (!client._config.enabledErrorTypes.unhandledExceptions) return\n function onerror (messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z')\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n let event\n\n // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, 'window onerror', 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n } else if (\n // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n (typeof messageOrEvent === 'object' && messageOrEvent !== null) &&\n (!url || typeof url !== 'string') &&\n !lineNo && !charNo && !error\n ) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n const name = messageOrEvent.type ? `Event: ${messageOrEvent.type}` : 'Error'\n // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n event = client.Event.create({ name, message }, true, handledState, 'window onerror', 1)\n\n // provide the original thing onerror received – not our error-like object we passed to _notify\n event.originalError = messageOrEvent\n\n // include the raw input as metadata – it might contain more info than we extracted\n event.addMetadata('window onerror', { event: messageOrEvent, extraParameters: url })\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, 'window onerror', 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n }\n\n client._notify(event)\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments)\n }\n\n const prevOnError = win.onerror\n win.onerror = onerror\n }\n})\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n if (!stack[0]) stack.push({})\n const culprit = stack[0]\n if (!culprit.file && typeof url === 'string') culprit.file = url\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter\n }\n }\n}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n","const map = require('@bugsnag/core/lib/es-utils/map')\nconst isError = require('@bugsnag/core/lib/iserror')\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n const listener = evt => {\n let error = evt.reason\n let isBluebird = false\n\n // accessing properties on evt.detail can throw errors (see #394)\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason\n isBluebird = true\n }\n } catch (e) {}\n\n const event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: { type: 'unhandledPromiseRejection' }\n }, 'unhandledrejection handler', 1, client._logger)\n\n if (isBluebird) {\n map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n }\n\n client._notify(event, (event) => {\n if (isError(event.originalError) && !event.originalError.stack) {\n event.addMetadata('unhandledRejection handler', {\n [Object.prototype.toString.call(event.originalError)]: {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }\n })\n }\n })\n }\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener)\n } else {\n win.onunhandledrejection = (reason, promise) => {\n listener({ detail: { reason, promise } })\n }\n }\n _listener = listener\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener)\n } else {\n win.onunhandledrejection = null\n }\n }\n _listener = null\n }\n }\n\n return plugin\n}\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nconst fixBluebirdStacktrace = (error) => (frame) => {\n if (frame.file === error.toString()) return\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '')\n }\n}\n","const name = 'Bugsnag JavaScript'\nconst version = '7.17.4'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\n\nconst Client = require('@bugsnag/core/client')\nconst Event = require('@bugsnag/core/event')\nconst Session = require('@bugsnag/core/session')\nconst Breadcrumb = require('@bugsnag/core/breadcrumb')\n\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst keys = require('@bugsnag/core/lib/es-utils/keys')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\n// extend the base config schema with some browser-specific options\nconst schema = assign({}, require('@bugsnag/core/config').schema, require('./config'))\n\nconst pluginWindowOnerror = require('@bugsnag/plugin-window-onerror')\nconst pluginUnhandledRejection = require('@bugsnag/plugin-window-unhandled-rejection')\nconst pluginApp = require('@bugsnag/plugin-app-duration')\nconst pluginDevice = require('@bugsnag/plugin-browser-device')\nconst pluginContext = require('@bugsnag/plugin-browser-context')\nconst pluginRequest = require('@bugsnag/plugin-browser-request')\nconst pluginThrottle = require('@bugsnag/plugin-simple-throttle')\nconst pluginConsoleBreadcrumbs = require('@bugsnag/plugin-console-breadcrumbs')\nconst pluginNetworkBreadcrumbs = require('@bugsnag/plugin-network-breadcrumbs')\nconst pluginNavigationBreadcrumbs = require('@bugsnag/plugin-navigation-breadcrumbs')\nconst pluginInteractionBreadcrumbs = require('@bugsnag/plugin-interaction-breadcrumbs')\nconst pluginInlineScriptContent = require('@bugsnag/plugin-inline-script-content')\nconst pluginSession = require('@bugsnag/plugin-browser-session')\nconst pluginIp = require('@bugsnag/plugin-client-ip')\nconst pluginStripQueryString = require('@bugsnag/plugin-strip-query-string')\n\n// delivery mechanisms\nconst dXDomainRequest = require('@bugsnag/delivery-x-domain-request')\nconst dXMLHttpRequest = require('@bugsnag/delivery-xml-http-request')\n\nconst Bugsnag = {\n _client: null,\n createClient: (opts) => {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = { apiKey: opts }\n if (!opts) opts = {}\n\n const internalPlugins = [\n // add browser-specific plugins\n pluginApp,\n pluginDevice(),\n pluginContext(),\n pluginRequest(),\n pluginThrottle,\n pluginSession,\n pluginIp,\n pluginStripQueryString,\n pluginWindowOnerror(),\n pluginUnhandledRejection(),\n pluginNavigationBreadcrumbs(),\n pluginInteractionBreadcrumbs(),\n pluginNetworkBreadcrumbs(),\n pluginConsoleBreadcrumbs,\n\n // this one added last to avoid wrapping functionality before bugsnag uses it\n pluginInlineScriptContent()\n ]\n\n // configure a client with user supplied options\n const bugsnag = new Client(opts, schema, internalPlugins, { name, version, url })\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? dXDomainRequest : dXMLHttpRequest)\n\n bugsnag._logger.debug('Loaded!')\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state')\n\n return bugsnag._config.autoTrackSessions\n ? bugsnag.startSession()\n : bugsnag\n },\n start: (opts) => {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.')\n return Bugsnag._client\n }\n Bugsnag._client = Bugsnag.createClient(opts)\n return Bugsnag._client\n },\n isStarted: () => {\n return Bugsnag._client != null\n }\n}\n\nmap(['resetEventCount'].concat(keys(Client.prototype)), (m) => {\n if (/^_/.test(m)) return\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(`Bugsnag.${m}() was called before Bugsnag.start()`)\n Bugsnag._client._depth += 1\n const ret = Bugsnag._client[m].apply(Bugsnag._client, arguments)\n Bugsnag._client._depth -= 1\n return ret\n }\n})\n\nmodule.exports = Bugsnag\n\nmodule.exports.Client = Client\nmodule.exports.Event = Event\nmodule.exports.Session = Session\nmodule.exports.Breadcrumb = Breadcrumb\n\n// Export a \"default\" property for compatibility with ESM imports\nmodule.exports.default = Bugsnag\n","\nreturn _$notifier_2;\n\n});\n","module.exports = require('@bugsnag/browser')\n","module.exports = class BugsnagPluginReact {\n constructor (...args) {\n // Fetch React from the window object, if it exists\n const globalReact = typeof window !== 'undefined' && window.React\n\n this.name = 'react'\n this.lazy = args.length === 0 && !globalReact\n\n if (!this.lazy) {\n this.React = args[0] || globalReact\n if (!this.React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n }\n }\n\n load (client) {\n if (!this.lazy) {\n const ErrorBoundary = createClass(this.React, client)\n ErrorBoundary.createErrorBoundary = () => ErrorBoundary\n return ErrorBoundary\n }\n\n const BugsnagPluginReactLazyInitializer = function () {\n throw new Error(`@bugsnag/plugin-react was used incorrectly. Valid usage is as follows:\nPass React to the plugin constructor\n\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact(React)] })\\`\nand then call \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary()\\`\n\nOr if React is not available until after Bugsnag has started,\nconstruct the plugin with no arguments\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact()] })\\`,\nthen pass in React when available to construct your error boundary\n \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React)\\``)\n }\n BugsnagPluginReactLazyInitializer.createErrorBoundary = (React) => {\n if (!React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n return createClass(React, client)\n }\n return BugsnagPluginReactLazyInitializer\n }\n}\n\nconst formatComponentStack = str => {\n const lines = str.split(/\\s*\\n\\s*/g)\n let ret = ''\n for (let line = 0, len = lines.length; line < len; line++) {\n if (lines[line].length) ret += `${ret.length ? '\\n' : ''}${lines[line]}`\n }\n return ret\n}\n\nconst createClass = (React, client) => class ErrorBoundary extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n error: null,\n info: null\n }\n this.handleClearError = this.handleClearError.bind(this)\n }\n\n handleClearError () {\n this.setState({ error: null, info: null })\n }\n\n componentDidCatch (error, info) {\n const { onError } = this.props\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n const event = client.Event.create(\n error,\n true,\n handledState,\n 1\n )\n if (info && info.componentStack) info.componentStack = formatComponentStack(info.componentStack)\n event.addMetadata('react', info)\n client._notify(event, onError)\n this.setState({ error, info })\n }\n\n render () {\n const { error } = this.state\n if (error) {\n const { FallbackComponent } = this.props\n if (FallbackComponent) return React.createElement(FallbackComponent, { ...this.state, clearError: this.handleClearError })\n return null\n }\n return this.props.children\n }\n}\n\nmodule.exports.formatComponentStack = formatComponentStack\nmodule.exports.default = module.exports\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var env=require(\"exenv\");require(\"prop-types\");var React=require(\"react\");function _typeof(e){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n=0;r-=1)this.handlers[r].called||(this.handlers[r].called=!0,this.handlers[r](e));for(var o=n;o>=0;o-=1)this.handlers[o].called=!1}else{(0,this.handlers[n])(e)}}},{key:\"hasHandlers\",value:function(){return this.handlers.length>0}},{key:\"removeHandlers\",value:function(t){for(var n=[],r=this.handlers.length,o=0;o0;var t=this.handlerSets.get(e);return!!t&&t.hasHandlers()}},{key:\"removeHandlers\",value:function(t,n){var r=cloneMap(this.handlerSets);if(!r.has(t))return new e(this.poolName,r);var o=r.get(t).removeHandlers(n);return o.hasHandlers()?r.set(t,o):r.delete(t),new e(this.poolName,r)}}]),e}();_defineProperty(EventPool,\"createByType\",function(e,t,n){var r=new Map;return r.set(t,new EventSet(n)),new EventPool(e,r)});var EventTarget=function(){function e(t){var n=this;_classCallCheck(this,e),_defineProperty(this,\"handlers\",new Map),_defineProperty(this,\"pools\",new Map),_defineProperty(this,\"target\",void 0),_defineProperty(this,\"createEmitter\",function(e){return function(t){n.pools.forEach(function(n){n.dispatchEvent(e,t)})}}),this.target=t}return _createClass(e,[{key:\"addHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e);this.pools.set(e,r.addHandlers(t,n))}else this.pools.set(e,EventPool.createByType(e,t,n));this.handlers.has(t)||this.addTargetHandler(t)}},{key:\"hasHandlers\",value:function(){return this.handlers.size>0}},{key:\"removeHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e).removeHandlers(t,n);r.hasHandlers()?this.pools.set(e,r):this.pools.delete(e);var o=!1;this.pools.forEach(function(e){return o=o||e.hasHandlers(t)}),o||this.removeTargetHandler(t)}}},{key:\"addTargetHandler\",value:function(e){var t=this.createEmitter(e);this.handlers.set(e,t),this.target.addEventListener(e,t,!0)}},{key:\"removeTargetHandler\",value:function(e){this.handlers.has(e)&&(this.target.removeEventListener(e,this.handlers.get(e),!0),this.handlers.delete(e))}}]),e}(),EventStack=function(){function e(){var t=this;_classCallCheck(this,e),_defineProperty(this,\"targets\",new Map),_defineProperty(this,\"getTarget\",function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=normalizeTarget(e);if(t.targets.has(r))return t.targets.get(r);if(!n)return null;var o=new EventTarget(r);return t.targets.set(r,o),o}),_defineProperty(this,\"removeTarget\",function(e){t.targets.delete(normalizeTarget(e))})}return _createClass(e,[{key:\"sub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a;this.getTarget(o).addHandlers(s,e,normalizeHandlers(t))}}},{key:\"unsub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a,i=this.getTarget(o,!1);i&&(i.removeHandlers(s,e,normalizeHandlers(t)),i.hasHandlers()||this.removeTarget(o))}}}]),e}(),instance=new EventStack,EventStack$1=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,React.PureComponent),_createClass(t,[{key:\"componentDidMount\",value:function(){this.subscribe(this.props)}},{key:\"componentDidUpdate\",value:function(e){this.unsubscribe(e),this.subscribe(this.props)}},{key:\"componentWillUnmount\",value:function(){this.unsubscribe(this.props)}},{key:\"subscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.sub(t,n,{pool:r,target:o})}},{key:\"unsubscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.unsub(t,n,{pool:r,target:o})}},{key:\"render\",value:function(){return null}}]),t}();_defineProperty(EventStack$1,\"defaultProps\",{pool:\"default\",target:\"document\"}),EventStack$1.propTypes={},exports.instance=instance,exports.default=EventStack$1;\n","\n'use strict';\n\nvar stack;\n\nif (process.env.NODE_ENV === 'production') {\n stack = require('./cjs/event-stack.production.js');\n} else {\n stack = require('./cjs/event-stack.development.js');\n}\n\nmodule.exports = stack.default;\nmodule.exports.instance = stack.instance;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict'\n\nvar isObject = function isObject(val) {\n return val !== null && !Array.isArray(val) && typeof val === 'object'\n}\n\nvar codes = {\n // ----------------------------------------\n // By Code\n // ----------------------------------------\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut',\n}\n\n// Function Keys (F1-24)\nfor (var i = 0; i < 24; i += 1) {\n codes[112 + i] = 'F' + (i + 1)\n}\n\n// Alphabet (a-Z)\nfor (var j = 0; j < 26; j += 1) {\n var n = j + 65\n codes[n] = [String.fromCharCode(n + 32), String.fromCharCode(n)]\n}\n\nvar keyboardKey = {\n codes: codes,\n\n /**\n * Get the `keyCode` or `which` value from a keyboard event or `key` name.\n * @param {string|object} eventOrKey A keyboard event-like object or `key` name.\n * @param {string} [eventOrKey.key] If object, it must have one of these keys.\n * @param {number} [eventOrKey.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrKey.which] If object, it must have one of these keys.\n * @returns {number|undefined}\n */\n getCode: function getCode(eventOrKey) {\n if (isObject(eventOrKey)) {\n return eventOrKey.keyCode || eventOrKey.which || this[eventOrKey.key]\n }\n return this[eventOrKey]\n },\n\n /**\n * Get the key name from a keyboard event, `keyCode`, or `which` value.\n * @param {number|object} eventOrCode A keyboard event-like object or key code.\n * @param {string} [eventOrCode.key] If object with a `key` name, it will be returned.\n * @param {number} [eventOrCode.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrCode.which] If object, it must have one of these keys.\n * @param {boolean} [eventOrCode.shiftKey] If object, it must have one of these keys.\n * @returns {string|undefined}\n */\n getKey: function getKey(eventOrCode) {\n var isEvent = isObject(eventOrCode)\n\n // handle events with a `key` already defined\n if (isEvent && eventOrCode.key) {\n return eventOrCode.key\n }\n\n var name = codes[isEvent ? eventOrCode.keyCode || eventOrCode.which : eventOrCode]\n\n if (Array.isArray(name)) {\n if (isEvent) {\n name = name[eventOrCode.shiftKey ? 1 : 0]\n } else {\n name = name[0]\n }\n }\n\n return name\n },\n\n // ----------------------------------------\n // By Name\n // ----------------------------------------\n // declare these manually for static analysis\n Cancel: 3,\n Help: 6,\n Backspace: 8,\n Tab: 9,\n Clear: 12,\n Enter: 13,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Pause: 19,\n CapsLock: 20,\n Escape: 27,\n Convert: 28,\n NonConvert: 29,\n Accept: 30,\n ModeChange: 31,\n ' ': 32,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n Select: 41,\n Print: 42,\n Execute: 43,\n PrintScreen: 44,\n Insert: 45,\n Delete: 46,\n 0: 48,\n ')': 48,\n 1: 49,\n '!': 49,\n 2: 50,\n '@': 50,\n 3: 51,\n '#': 51,\n 4: 52,\n $: 52,\n 5: 53,\n '%': 53,\n 6: 54,\n '^': 54,\n 7: 55,\n '&': 55,\n 8: 56,\n '*': 56,\n 9: 57,\n '(': 57,\n a: 65,\n A: 65,\n b: 66,\n B: 66,\n c: 67,\n C: 67,\n d: 68,\n D: 68,\n e: 69,\n E: 69,\n f: 70,\n F: 70,\n g: 71,\n G: 71,\n h: 72,\n H: 72,\n i: 73,\n I: 73,\n j: 74,\n J: 74,\n k: 75,\n K: 75,\n l: 76,\n L: 76,\n m: 77,\n M: 77,\n n: 78,\n N: 78,\n o: 79,\n O: 79,\n p: 80,\n P: 80,\n q: 81,\n Q: 81,\n r: 82,\n R: 82,\n s: 83,\n S: 83,\n t: 84,\n T: 84,\n u: 85,\n U: 85,\n v: 86,\n V: 86,\n w: 87,\n W: 87,\n x: 88,\n X: 88,\n y: 89,\n Y: 89,\n z: 90,\n Z: 90,\n OS: 91,\n ContextMenu: 93,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n F13: 124,\n F14: 125,\n F15: 126,\n F16: 127,\n F17: 128,\n F18: 129,\n F19: 130,\n F20: 131,\n F21: 132,\n F22: 133,\n F23: 134,\n F24: 135,\n NumLock: 144,\n ScrollLock: 145,\n VolumeMute: 181,\n VolumeDown: 182,\n VolumeUp: 183,\n ';': 186,\n ':': 186,\n '=': 187,\n '+': 187,\n ',': 188,\n '<': 188,\n '-': 189,\n _: 189,\n '.': 190,\n '>': 190,\n '/': 191,\n '?': 191,\n '`': 192,\n '~': 192,\n '[': 219,\n '{': 219,\n '\\\\': 220,\n '|': 220,\n ']': 221,\n '}': 221,\n \"'\": 222,\n '\"': 222,\n Meta: 224,\n AltGraph: 225,\n Attn: 246,\n CrSel: 247,\n ExSel: 248,\n EraseEof: 249,\n Play: 250,\n ZoomOut: 251,\n}\n\n// ----------------------------------------\n// By Alias\n// ----------------------------------------\n// provide dot-notation accessible keys for all key names\nkeyboardKey.Spacebar = keyboardKey[' ']\nkeyboardKey.Digit0 = keyboardKey['0']\nkeyboardKey.Digit1 = keyboardKey['1']\nkeyboardKey.Digit2 = keyboardKey['2']\nkeyboardKey.Digit3 = keyboardKey['3']\nkeyboardKey.Digit4 = keyboardKey['4']\nkeyboardKey.Digit5 = keyboardKey['5']\nkeyboardKey.Digit6 = keyboardKey['6']\nkeyboardKey.Digit7 = keyboardKey['7']\nkeyboardKey.Digit8 = keyboardKey['8']\nkeyboardKey.Digit9 = keyboardKey['9']\nkeyboardKey.Tilde = keyboardKey['~']\nkeyboardKey.GraveAccent = keyboardKey['`']\nkeyboardKey.ExclamationPoint = keyboardKey['!']\nkeyboardKey.AtSign = keyboardKey['@']\nkeyboardKey.PoundSign = keyboardKey['#']\nkeyboardKey.PercentSign = keyboardKey['%']\nkeyboardKey.Caret = keyboardKey['^']\nkeyboardKey.Ampersand = keyboardKey['&']\nkeyboardKey.PlusSign = keyboardKey['+']\nkeyboardKey.MinusSign = keyboardKey['-']\nkeyboardKey.EqualsSign = keyboardKey['=']\nkeyboardKey.DivisionSign = keyboardKey['/']\nkeyboardKey.MultiplicationSign = keyboardKey['*']\nkeyboardKey.Comma = keyboardKey[',']\nkeyboardKey.Decimal = keyboardKey['.']\nkeyboardKey.Colon = keyboardKey[':']\nkeyboardKey.Semicolon = keyboardKey[';']\nkeyboardKey.Pipe = keyboardKey['|']\nkeyboardKey.BackSlash = keyboardKey['\\\\']\nkeyboardKey.QuestionMark = keyboardKey['?']\nkeyboardKey.SingleQuote = keyboardKey[\"'\"]\nkeyboardKey.DoubleQuote = keyboardKey['\"']\nkeyboardKey.LeftCurlyBrace = keyboardKey['{']\nkeyboardKey.RightCurlyBrace = keyboardKey['}']\nkeyboardKey.LeftParenthesis = keyboardKey['(']\nkeyboardKey.RightParenthesis = keyboardKey[')']\nkeyboardKey.LeftAngleBracket = keyboardKey['<']\nkeyboardKey.RightAngleBracket = keyboardKey['>']\nkeyboardKey.LeftSquareBracket = keyboardKey['[']\nkeyboardKey.RightSquareBracket = keyboardKey[']']\n\nmodule.exports = keyboardKey\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) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\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); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\r\n (function () {\r\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'];\r\n var i;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\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); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var checkText = function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [{\r\n s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\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); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\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.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var BezierFactory = function () {\r\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 */\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\r\n\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n // Private part\r\n _precompute: function _precompute() {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\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])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\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;\r\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;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0t0 = t0 * t0 * t0; //\r\n\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0t1 = t0 * t0 * t1; //\r\n\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1t1 = t0 * t1 * t1; //\r\n\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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\r\n\r\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\r\n\r\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\r\n\r\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\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n var segmentPerc;\r\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\r\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n\r\n if (1.0 - cosom > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n\r\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\r\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])) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof data.k[0] === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n }();\r\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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);\r\n }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\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 } */\r\n\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\r\n\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = Math.PI * 2 / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\r\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\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);\r\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; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\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);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\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 */\r\n\r\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 */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\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);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\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) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\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);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\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 }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\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]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\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;\r\n }\r\n\r\n function toCSS() {\r\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.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\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.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\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); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\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.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\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\r\n\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n\r\n jLen = edges.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n\r\n shapes.push(shapePath);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\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]);\r\n }\r\n\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\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]);\r\n }\r\n\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\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]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {//\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\r\n\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\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.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr'\r\n };\r\n group.it.push({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\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));\r\n\r\n if (iteration !== 0) {\r\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n\r\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]);\r\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]);\r\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]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n };\r\n\r\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\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);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\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]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\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]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\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]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\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());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\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;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\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 */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\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());\r\n }\r\n\r\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());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\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]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n\r\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 */\r\n checkLayerLimits: function checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100\r\n };\r\n },\r\n getLayerSize: function getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\r\n\r\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 */\r\n function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\r\n\r\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 */\r\n prepareProperties: function prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\r\n\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n };\r\n\r\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\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];\r\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];\r\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];\r\n\r\n\r\n if (pathNodes.c && len > 1) {\r\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];\r\n } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n };\r\n\r\n var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\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)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\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 */\r\n setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function hide() {\r\n // console.log('HIDE', this);\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function show() {\r\n // console.log('SHOW', this);\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\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\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n }\r\n\r\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\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]);\r\n }\r\n\r\n if (closed && length) {\r\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]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\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.\r\n // List of elements that have been created\r\n\r\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.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n var pathElement = styleOb.pElem;\r\n\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n };\r\n\r\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\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') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\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])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n } //\r\n\r\n\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\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)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - x * x / (a * a));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = this.e.v / divisor + o;\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\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]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\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);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\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\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\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]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n };\r\n\r\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n };\r\n\r\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n } //\r\n\r\n }\r\n\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\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 }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\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 */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\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');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\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\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n }\r\n\r\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem[\"do\"] = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\r\n }\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\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]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {//\r\n }\r\n }\r\n\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem[\"do\"] = d.dashoffset[0];\r\n }\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n };\r\n\r\n function CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\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));\r\n }\r\n\r\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));\r\n }\r\n\r\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));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n };\r\n\r\n CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\r\n };\r\n\r\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\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];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n };\r\n\r\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\r\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\r\n return;\r\n }\r\n\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n };\r\n\r\n CanvasRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\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.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\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];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\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;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\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) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\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) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\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]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\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));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n };\r\n\r\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / this.globalData.compSize.w;\r\n sy = elementWidth / this.globalData.compSize.w;\r\n tx = 0;\r\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\r\n } else {\r\n sx = elementHeight / this.globalData.compSize.h;\r\n sy = elementHeight / this.globalData.compSize.h;\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\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); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\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); }\r\n\r\n /* eslint-disable */\r\n\r\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 */\r\n function seedRandom(pool, math) {\r\n //\r\n // The following constants are related to IEEE 754 limits.\r\n //\r\n var global = this,\r\n width = 256,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n //\r\n // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\r\n };\r\n } // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\r\n // ARC4\r\n //\r\n // An ARC4 implementation. The constructor takes a key in the form of\r\n // an array of at most (width) integers that should be 0 <= x < (width).\r\n //\r\n // The g(count) method returns a pseudorandom integer that concatenates\r\n // the next (count) outputs from ARC4. Its return value is a number x\r\n // that is in the range 0 <= x < (width ^ count).\r\n //\r\n\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\r\n s[j] = t;\r\n } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\r\n while (count--) {\r\n t = s[i = mask & i + 1];\r\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\r\n }\r\n\r\n me.i = i;\r\n me.j = j;\r\n return r; // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n } //\r\n // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\r\n\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n } //\r\n // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\r\n } //\r\n // mixkey()\r\n // Mixes a string seed into a key that is an array of integers, and\r\n // returns a shortened string seed that is equivalent to the result key.\r\n //\r\n\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\r\n } //\r\n // autoseed()\r\n // Returns an object for autoseeding, using window.crypto and Node crypto\r\n // module if available.\r\n //\r\n\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n } //\r\n // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n } //\r\n // When seedrandom.js is loaded, we immediately mix a few bits\r\n // from the built-in RNG into the entropy pool. Because we do\r\n // not want to interfere with deterministic PRNG state later,\r\n // seedrandom will not call math.random on its own again after\r\n // initialization.\r\n //\r\n\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\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); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\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);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\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;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\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];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\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];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\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);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\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';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\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');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\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');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\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) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\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');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\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) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\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) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\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) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\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) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\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) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\r\n }\r\n\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n };\r\n\r\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n }\r\n\r\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n };\r\n\r\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n\r\n _svgMatteSymbols.push(mask);\r\n\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\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>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","// 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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"fe650e77\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"@qualia/vuln-manager-frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_qualia_vuln_manager_frontend\"] = self[\"webpackChunk_qualia_vuln_manager_frontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(name: M) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","export function maybe(thunk: () => T): T | undefined {\n try { return thunk() } catch {}\n}\n","import { maybe } from \"./maybe\";\n\ndeclare global {\n // Despite our attempts to reuse the React Native __DEV__ constant instead of\n // inventing something new and Apollo-specific, declaring a useful type for\n // __DEV__ unfortunately conflicts (TS2451) with the global declaration in\n // @types/react-native/index.d.ts.\n //\n // To hide that harmless conflict, we @ts-ignore this line, which should\n // continue to provide a type for __DEV__ elsewhere in the Apollo Client\n // codebase, even when @types/react-native is not in use.\n //\n // However, because TypeScript drops @ts-ignore comments when generating .d.ts\n // files (https://github.com/microsoft/TypeScript/issues/38628), we also\n // sanitize the dist/utilities/globals/global.d.ts file to avoid declaring\n // __DEV__ globally altogether when @apollo/client is installed in the\n // node_modules directory of an application.\n //\n // @ts-ignore\n const __DEV__: boolean | undefined;\n}\n\nexport default (\n maybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => global) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n) as typeof globalThis & {\n __DEV__: typeof __DEV__;\n};\n","import global from \"./global\";\nimport { maybe } from \"./maybe\";\n\n// To keep string-based find/replace minifiers from messing with __DEV__ inside\n// string literals or properties like global.__DEV__, we construct the \"__DEV__\"\n// string in a roundabout way that won't be altered by find/replace strategies.\nconst __ = \"__\";\nconst GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch {\n Object.defineProperty(global, GLOBAL_KEY, {\n // In a buildless browser environment, maybe(() => process.env.NODE_ENV)\n // evaluates as undefined, so __DEV__ becomes true by default, but can be\n // initialized to false instead by a script/module that runs earlier.\n value: maybe(() => process.env.NODE_ENV) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n // Using computed property access rather than global.__DEV__ here prevents\n // string-based find/replace strategies from munging this to global.false:\n return (global as any)[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();\n","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\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/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\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\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","// The ordering of these imports is important, because it ensures the temporary\n// process.env.NODE_ENV polyfill is defined globally (if necessary) before we\n// import { Source } from 'graphql'. The instanceOf function that we really care\n// about (the one that uses process.env.NODE_ENV) is not exported from the\n// top-level graphql package, but graphql/language/source uses instanceOf, and\n// has relatively few dependencies, so importing it here should not increase\n// bundle sizes as much as other options.\nimport { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\n\nexport function removeTemporaryGlobals() {\n // Using Source here here just to make sure it won't be tree-shaken away.\n return typeof Source === \"function\" ? remove() : remove();\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\n\n// Just in case the graphql package switches from process.env.NODE_ENV to\n// __DEV__, make sure __DEV__ is polyfilled before importing graphql.\nimport DEV from \"./DEV\";\nexport { DEV }\nexport function checkDEV() {\n invariant(\"boolean\" === typeof DEV, DEV);\n}\n\n// Import graphql/jsutils/instanceOf safely, working around its unchecked usage\n// of process.env.NODE_ENV and https://github.com/graphql/graphql-js/pull/2894.\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\n\n// Synchronously undo the global process.env.NODE_ENV polyfill that we created\n// temporarily while importing the offending graphql/jsutils/instanceOf module.\nremoveTemporaryGlobals();\n\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError }\n\n// Ensure __DEV__ was properly initialized, and prevent tree-shaking bundlers\n// from mistakenly pruning the ./DEV module (see issue #8674).\ncheckDEV();\n","import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n","import * as React from 'react';\nimport { ApolloClient } from '../../core';\nimport { canUseSymbol } from '../../utilities';\nimport type { RenderPromises } from '../ssr';\n\nexport interface ApolloContextValue {\n client?: ApolloClient;\n renderPromises?: RenderPromises;\n}\n\n// To make sure Apollo Client doesn't create more than one React context\n// (which can lead to problems like having an Apollo Client instance added\n// in one context, then attempting to retrieve it from another different\n// context), a single Apollo context is created and tracked in global state.\nconst contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\n\nexport function getApolloContext(): React.Context {\n let context = (React.createContext as any)[contextKey] as React.Context;\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\n\nexport { getApolloContext as resetApolloContext }\n","import { invariant } from '../../utilities/globals';\n\nimport * as React from 'react';\n\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps {\n client: ApolloClient;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context: any = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n \n {children}\n \n );\n }}\n \n );\n};\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * 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 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\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, 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 let nextAction = Action.Pop;\n let nextIndex = getIndex();\n\n if (nextIndex != null) {\n let delta = nextIndex - index;\n action = nextAction;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n } else {\n warning(\n false,\n // TODO: Write up a doc that explains our blocking strategy in detail\n // and link to it here so people can understand better what is going on\n // and how to avoid it.\n `You are trying to block a POP navigation to a location that was not ` +\n `created by @remix-run/router. The block will fail silently in ` +\n `production, but in general you should do all navigation with the ` +\n `router (instead of using window.history.pushState directly) ` +\n `to avoid this situation.`\n );\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 // 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 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","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n 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}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${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 */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n 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 explodes _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 = 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 return (\n path\n .replace(\n /^:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return param;\n }\n )\n .replace(\n /\\/:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : `/${param}`;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return `/${param}`;\n }\n )\n // Remove any optional markers from optional static segments\n .replace(/\\?/g, \"\")\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n })\n );\n}\n\n/**\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, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging @remix-run/router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private 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 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, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\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 (error) {\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 * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n 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 throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n warning,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): 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, 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,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * 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 * 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 * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n 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\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\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 * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\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};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // 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(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let 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 =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // 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 // 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 // - useRevalidate()\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 from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\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 // 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 let activeBlocker: string | null = null;\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 let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n if (blockerKey) {\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 deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n 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(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a 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 for (let [key] of blockerFunctions) {\n deleteBlocker(key);\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 updateState({\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: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let 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 blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\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 deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.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 });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = 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 }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // 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.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(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 }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\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 router.basename\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 replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\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 = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\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\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\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 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\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported 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 ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n // Check if this an external redirect that goes to a new origin\n if (isBrowser && typeof window?.location !== \"undefined\") {\n let newOrigin = init.history.createURL(redirect.location).origin;\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.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, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\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 if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\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(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function 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 if (activeBlocker == null) {\n // This is now the active blocker\n activeBlocker = key;\n } else if (key !== activeBlocker) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n if (activeBlocker === key) {\n activeBlocker = null;\n }\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 state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.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 (activeBlocker == null) {\n return;\n }\n\n // We only allow a single blocker at the moment. This will need to be\n // updated if we enhance to support multiple blockers in the future\n let blockerFunction = blockerFunctions.get(activeBlocker);\n invariant(\n blockerFunction,\n \"Could not find a function for the active blocker\"\n );\n let blocker = state.blockers.get(activeBlocker);\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 activeBlocker;\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 || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\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.toLowerCase();\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.toLowerCase();\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 && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\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 basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n 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 (isRouteRequest && !routeMatch?.route.loader) {\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((m) => m.route.loader);\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 basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // 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: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !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 // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400),\n };\n }\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 isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n history,\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n history,\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n history: History,\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = history.createURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = history.createURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\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 request.signal.removeEventListener(\"abort\", onReject);\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 let isAbsolute = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(location);\n\n // Support relative routing in internal redirects\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin absolute redirects.\n // If this is a static reques, we can let it go back to the browser\n // 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 if (url.origin === currentUrl.origin) {\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 (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // 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 data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\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, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\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] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n 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: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n 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) {\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 = 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\";\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 {\n errorMessage = \"Cannot submit binary form data using GET\";\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 ErrorResponse(\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(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction 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 || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\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 type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // 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}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} 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\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 invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/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 { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\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 dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n return (\n <>\n

Unhandled Thrown Error!

\n

{message}

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

💿 Hey developer 👋

\n

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

\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \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\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\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = dataRouterState\n ? match.route.errorElement || \n : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => (\n \n {error\n ? errorElement\n : match.route.element !== undefined\n ? match.route.element\n : outlet}\n \n );\n // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n return dataRouterState && (match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/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\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 current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n 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\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let 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) {\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\n// useBlocker() is a singleton for now since we don't have any compelling use\n// cases for multi-blocker yet\nlet blockerKey = \"blocker-singleton\";\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 } = useDataRouterContext(DataRouterHook.UseBlocker);\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(() => () => router.deleteBlocker(blockerKey), [router]);\n\n return blocker;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n invariant,\n parsePath,\n stripBasename,\n warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n () => router.state,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n 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 // 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